--- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -2133,8 +2133,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 @@ -2147,18 +2145,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 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -8379,9 +8379,7 @@ int cfg80211_register_netdevice(struct n */ static inline void cfg80211_unregister_netdevice(struct net_device *dev) { -#if IS_ENABLED(CONFIG_CFG80211) cfg80211_unregister_wdev(dev->ieee80211_ptr); -#endif } /** --- a/include/net/cfg802154.h +++ b/include/net/cfg802154.h @@ -373,7 +373,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, @@ -384,7 +383,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 @@ -308,11 +308,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 @@ -747,6 +747,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 }; @@ -755,19 +756,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 @@ -2008,8 +1997,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);