mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
147 lines
3.9 KiB
Diff
147 lines
3.9 KiB
Diff
--- a/include/linux/netdevice.h
|
|
+++ b/include/linux/netdevice.h
|
|
@@ -576,8 +576,8 @@ static inline bool napi_if_scheduled_mar
|
|
{
|
|
unsigned long val, new;
|
|
|
|
- val = READ_ONCE(n->state);
|
|
do {
|
|
+ val = READ_ONCE(n->state);
|
|
if (val & NAPIF_STATE_DISABLE)
|
|
return true;
|
|
|
|
@@ -585,7 +585,7 @@ static inline bool napi_if_scheduled_mar
|
|
return false;
|
|
|
|
new = val | NAPIF_STATE_MISSED;
|
|
- } while (!try_cmpxchg(&n->state, &val, new));
|
|
+ } while (cmpxchg(&n->state, val, new) != val);
|
|
|
|
return true;
|
|
}
|
|
@@ -1906,6 +1906,7 @@ enum netdev_stat_type {
|
|
* @tipc_ptr: TIPC specific data
|
|
* @atalk_ptr: AppleTalk link
|
|
* @ip_ptr: IPv4 specific data
|
|
+ * @dn_ptr: DECnet specific data
|
|
* @ip6_ptr: IPv6 specific data
|
|
* @ax25_ptr: AX.25 specific data
|
|
* @ieee80211_ptr: IEEE 802.11 specific data, assign before registering
|
|
@@ -2202,8 +2203,6 @@ struct net_device {
|
|
|
|
/* Protocol-specific pointers */
|
|
|
|
- struct in_device __rcu *ip_ptr;
|
|
- struct inet6_dev __rcu *ip6_ptr;
|
|
#if IS_ENABLED(CONFIG_VLAN_8021Q)
|
|
struct vlan_info __rcu *vlan_info;
|
|
#endif
|
|
@@ -2216,15 +2215,16 @@ struct net_device {
|
|
#if IS_ENABLED(CONFIG_ATALK)
|
|
void *atalk_ptr;
|
|
#endif
|
|
+ struct in_device __rcu *ip_ptr;
|
|
+#if IS_ENABLED(CONFIG_DECNET)
|
|
+ struct dn_dev __rcu *dn_ptr;
|
|
+#endif
|
|
+ struct inet6_dev __rcu *ip6_ptr;
|
|
#if IS_ENABLED(CONFIG_AX25)
|
|
void *ax25_ptr;
|
|
#endif
|
|
-#if IS_ENABLED(CONFIG_CFG80211)
|
|
struct wireless_dev *ieee80211_ptr;
|
|
-#endif
|
|
-#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
|
|
struct wpan_dev *ieee802154_ptr;
|
|
-#endif
|
|
#if IS_ENABLED(CONFIG_MPLS_ROUTING)
|
|
struct mpls_dev __rcu *mpls_ptr;
|
|
#endif
|
|
@@ -2655,6 +2655,8 @@ netif_napi_add_tx_weight(struct net_devi
|
|
netif_napi_add_weight(dev, napi, poll, weight);
|
|
}
|
|
|
|
+#define netif_tx_napi_add netif_napi_add_tx_weight
|
|
+
|
|
/**
|
|
* netif_napi_add_tx() - initialize a NAPI context to be used for Tx only
|
|
* @dev: network device
|
|
--- a/include/net/cfg802154.h
|
|
+++ b/include/net/cfg802154.h
|
|
@@ -482,7 +482,6 @@ struct wpan_dev {
|
|
|
|
#define to_phy(_dev) container_of(_dev, struct wpan_phy, dev)
|
|
|
|
-#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
|
|
static inline int
|
|
wpan_dev_hard_header(struct sk_buff *skb, struct net_device *dev,
|
|
const struct ieee802154_addr *daddr,
|
|
@@ -493,7 +492,6 @@ wpan_dev_hard_header(struct sk_buff *skb
|
|
|
|
return wpan_dev->header_ops->create(skb, dev, daddr, saddr, len);
|
|
}
|
|
-#endif
|
|
|
|
struct wpan_phy *
|
|
wpan_phy_new(const struct cfg802154_ops *ops, size_t priv_size);
|
|
--- a/net/batman-adv/hard-interface.c
|
|
+++ b/net/batman-adv/hard-interface.c
|
|
@@ -309,11 +309,9 @@ static bool batadv_is_cfg80211_netdev(st
|
|
if (!net_device)
|
|
return false;
|
|
|
|
-#if IS_ENABLED(CONFIG_CFG80211)
|
|
/* cfg80211 drivers have to set ieee80211_ptr */
|
|
if (net_device->ieee80211_ptr)
|
|
return true;
|
|
-#endif
|
|
|
|
return false;
|
|
}
|
|
--- a/net/core/net-sysfs.c
|
|
+++ b/net/core/net-sysfs.c
|
|
@@ -748,6 +748,7 @@ static const struct attribute_group nets
|
|
.attrs = netstat_attrs,
|
|
};
|
|
|
|
+#if IS_ENABLED(CONFIG_WIRELESS_EXT) || IS_ENABLED(CONFIG_CFG80211)
|
|
static struct attribute *wireless_attrs[] = {
|
|
NULL
|
|
};
|
|
@@ -756,19 +757,7 @@ static const struct attribute_group wire
|
|
.name = "wireless",
|
|
.attrs = wireless_attrs,
|
|
};
|
|
-
|
|
-static bool wireless_group_needed(struct net_device *ndev)
|
|
-{
|
|
-#if IS_ENABLED(CONFIG_CFG80211)
|
|
- if (ndev->ieee80211_ptr)
|
|
- return true;
|
|
#endif
|
|
-#if IS_ENABLED(CONFIG_WIRELESS_EXT)
|
|
- if (ndev->wireless_handlers)
|
|
- return true;
|
|
-#endif
|
|
- return false;
|
|
-}
|
|
|
|
#else /* CONFIG_SYSFS */
|
|
#define net_class_groups NULL
|
|
@@ -2037,8 +2026,14 @@ int netdev_register_kobject(struct net_d
|
|
|
|
*groups++ = &netstat_group;
|
|
|
|
- if (wireless_group_needed(ndev))
|
|
+#if IS_ENABLED(CONFIG_WIRELESS_EXT) || IS_ENABLED(CONFIG_CFG80211)
|
|
+ if (ndev->ieee80211_ptr)
|
|
+ *groups++ = &wireless_group;
|
|
+#if IS_ENABLED(CONFIG_WIRELESS_EXT)
|
|
+ else if (ndev->wireless_handlers)
|
|
*groups++ = &wireless_group;
|
|
+#endif
|
|
+#endif
|
|
#endif /* CONFIG_SYSFS */
|
|
|
|
error = device_add(dev);
|