aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2016-06-09 10:45:12 -0400
committerDavid S. Miller <davem@davemloft.net>2016-06-09 16:28:37 -0400
commitd3fff6c443fe8f8a5ef2bdcea45e2ff39db948c7 (patch)
treeec632344dab9ba6c7a3767aa4054e682ddf5871c /include/linux/netdevice.h
parent52fbb2907988aa0583c6d9d53a56aee090b2df7e (diff)
net: add netdev_lockdep_set_classes() helper
It is time to add netdev_lockdep_set_classes() helper so that lockdep annotations per device type are easier to manage. This removes a lot of copies and missing annotations. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 541562333ba5..4f234b102892 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1946,6 +1946,23 @@ static inline void netdev_for_each_tx_queue(struct net_device *dev,
1946 f(dev, &dev->_tx[i], arg); 1946 f(dev, &dev->_tx[i], arg);
1947} 1947}
1948 1948
1949#define netdev_lockdep_set_classes(dev) \
1950{ \
1951 static struct lock_class_key qdisc_tx_busylock_key; \
1952 static struct lock_class_key qdisc_running_key; \
1953 static struct lock_class_key qdisc_xmit_lock_key; \
1954 static struct lock_class_key dev_addr_list_lock_key; \
1955 unsigned int i; \
1956 \
1957 (dev)->qdisc_tx_busylock = &qdisc_tx_busylock_key; \
1958 (dev)->qdisc_running_key = &qdisc_running_key; \
1959 lockdep_set_class(&(dev)->addr_list_lock, \
1960 &dev_addr_list_lock_key); \
1961 for (i = 0; i < (dev)->num_tx_queues; i++) \
1962 lockdep_set_class(&(dev)->_tx[i]._xmit_lock, \
1963 &qdisc_xmit_lock_key); \
1964}
1965
1949struct netdev_queue *netdev_pick_tx(struct net_device *dev, 1966struct netdev_queue *netdev_pick_tx(struct net_device *dev,
1950 struct sk_buff *skb, 1967 struct sk_buff *skb,
1951 void *accel_priv); 1968 void *accel_priv);