diff options
author | Eric Dumazet <edumazet@google.com> | 2016-06-09 10:45:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-09 16:28:37 -0400 |
commit | d3fff6c443fe8f8a5ef2bdcea45e2ff39db948c7 (patch) | |
tree | ec632344dab9ba6c7a3767aa4054e682ddf5871c /include/linux/netdevice.h | |
parent | 52fbb2907988aa0583c6d9d53a56aee090b2df7e (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.h | 17 |
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 | |||
1949 | struct netdev_queue *netdev_pick_tx(struct net_device *dev, | 1966 | struct 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); |