aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-15 03:13:44 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-15 03:13:44 -0400
commite308a5d806c852f56590ffdd3834d0df0cbed8d7 (patch)
tree294ff654e90950f5162737c26f4799b0b710b748 /include/linux/netdevice.h
parentf1f28aa3510ddb84c966bac65611bb866c77a092 (diff)
netdev: Add netdev->addr_list_lock protection.
Add netif_addr_{lock,unlock}{,_bh}() helpers. Use them to protect operations that operate on or read the network device unicast and multicast address lists. Also use them in cases where the code simply wants to block calls into the driver's ->set_rx_mode() and ->set_multicast_list() methods. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index fd0365219181..570cf7affa72 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1498,6 +1498,26 @@ static inline void netif_tx_disable(struct net_device *dev)
1498 netif_tx_unlock_bh(dev); 1498 netif_tx_unlock_bh(dev);
1499} 1499}
1500 1500
1501static inline void netif_addr_lock(struct net_device *dev)
1502{
1503 spin_lock(&dev->addr_list_lock);
1504}
1505
1506static inline void netif_addr_lock_bh(struct net_device *dev)
1507{
1508 spin_lock_bh(&dev->addr_list_lock);
1509}
1510
1511static inline void netif_addr_unlock(struct net_device *dev)
1512{
1513 spin_unlock(&dev->addr_list_lock);
1514}
1515
1516static inline void netif_addr_unlock_bh(struct net_device *dev)
1517{
1518 spin_unlock_bh(&dev->addr_list_lock);
1519}
1520
1501/* These functions live elsewhere (drivers/net/net_init.c, but related) */ 1521/* These functions live elsewhere (drivers/net/net_init.c, but related) */
1502 1522
1503extern void ether_setup(struct net_device *dev); 1523extern void ether_setup(struct net_device *dev);