提交 1d631583 编写于 作者: D David S. Miller

Merge branch 'net-dev-Make-protocol-ptr-dependent-on-CONFIG'

David Ahern says:

====================
net: dev: Make protocol ptr dependent on CONFIG

Found these in a branch from 3-years ago. Still relevant today.
Make decnet, ax25, and atalk ptrs in net_device based on their
respective CONFIG.
====================
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
...@@ -113,10 +113,12 @@ extern void aarp_proto_init(void); ...@@ -113,10 +113,12 @@ extern void aarp_proto_init(void);
/* Inter module exports */ /* Inter module exports */
/* Give a device find its atif control structure */ /* Give a device find its atif control structure */
#if IS_ENABLED(CONFIG_IRDA) || IS_ENABLED(CONFIG_ATALK)
static inline struct atalk_iface *atalk_find_dev(struct net_device *dev) static inline struct atalk_iface *atalk_find_dev(struct net_device *dev)
{ {
return dev->atalk_ptr; return dev->atalk_ptr;
} }
#endif
extern struct atalk_addr *atalk_find_dev_addr(struct net_device *dev); extern struct atalk_addr *atalk_find_dev_addr(struct net_device *dev);
extern struct net_device *atrtr_get_dev(struct atalk_addr *sa); extern struct net_device *atrtr_get_dev(struct atalk_addr *sa);
......
...@@ -1798,11 +1798,17 @@ struct net_device { ...@@ -1798,11 +1798,17 @@ struct net_device {
#if IS_ENABLED(CONFIG_TIPC) #if IS_ENABLED(CONFIG_TIPC)
struct tipc_bearer __rcu *tipc_ptr; struct tipc_bearer __rcu *tipc_ptr;
#endif #endif
#if IS_ENABLED(CONFIG_IRDA) || IS_ENABLED(CONFIG_ATALK)
void *atalk_ptr; void *atalk_ptr;
#endif
struct in_device __rcu *ip_ptr; struct in_device __rcu *ip_ptr;
#if IS_ENABLED(CONFIG_DECNET)
struct dn_dev __rcu *dn_ptr; struct dn_dev __rcu *dn_ptr;
#endif
struct inet6_dev __rcu *ip6_ptr; struct inet6_dev __rcu *ip6_ptr;
#if IS_ENABLED(CONFIG_AX25)
void *ax25_ptr; void *ax25_ptr;
#endif
struct wireless_dev *ieee80211_ptr; struct wireless_dev *ieee80211_ptr;
struct wpan_dev *ieee802154_ptr; struct wpan_dev *ieee802154_ptr;
#if IS_ENABLED(CONFIG_MPLS_ROUTING) #if IS_ENABLED(CONFIG_MPLS_ROUTING)
......
...@@ -318,10 +318,12 @@ void ax25_digi_invert(const ax25_digi *, ax25_digi *); ...@@ -318,10 +318,12 @@ void ax25_digi_invert(const ax25_digi *, ax25_digi *);
extern ax25_dev *ax25_dev_list; extern ax25_dev *ax25_dev_list;
extern spinlock_t ax25_dev_lock; extern spinlock_t ax25_dev_lock;
#if IS_ENABLED(CONFIG_AX25)
static inline ax25_dev *ax25_dev_ax25dev(struct net_device *dev) static inline ax25_dev *ax25_dev_ax25dev(struct net_device *dev)
{ {
return dev->ax25_ptr; return dev->ax25_ptr;
} }
#endif
ax25_dev *ax25_addr_ax25dev(ax25_address *); ax25_dev *ax25_addr_ax25dev(ax25_address *);
void ax25_dev_device_up(struct net_device *); void ax25_dev_device_up(struct net_device *);
......
...@@ -8134,8 +8134,9 @@ void netdev_run_todo(void) ...@@ -8134,8 +8134,9 @@ void netdev_run_todo(void)
BUG_ON(!list_empty(&dev->ptype_specific)); BUG_ON(!list_empty(&dev->ptype_specific));
WARN_ON(rcu_access_pointer(dev->ip_ptr)); WARN_ON(rcu_access_pointer(dev->ip_ptr));
WARN_ON(rcu_access_pointer(dev->ip6_ptr)); WARN_ON(rcu_access_pointer(dev->ip6_ptr));
#if IS_ENABLED(CONFIG_DECNET)
WARN_ON(dev->dn_ptr); WARN_ON(dev->dn_ptr);
#endif
if (dev->priv_destructor) if (dev->priv_destructor)
dev->priv_destructor(dev); dev->priv_destructor(dev);
if (dev->needs_free_netdev) if (dev->needs_free_netdev)
......
...@@ -104,7 +104,6 @@ ...@@ -104,7 +104,6 @@
#include <linux/ipv6_route.h> #include <linux/ipv6_route.h>
#include <linux/route.h> #include <linux/route.h>
#include <linux/sockios.h> #include <linux/sockios.h>
#include <linux/atalk.h>
#include <net/busy_poll.h> #include <net/busy_poll.h>
#include <linux/errqueue.h> #include <linux/errqueue.h>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册