summaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-15 09:13:44 +0200
committerDavid S. Miller <davem@davemloft.net>2008-07-15 09:13:44 +0200
commite308a5d806c852f56590ffdd3834d0df0cbed8d7 (patch)
tree294ff654e90950f5162737c26f4799b0b710b748 /drivers/net/sfc
parentnetdev: Add addr_list_lock to struct net_device. (diff)
downloadlinux-e308a5d806c852f56590ffdd3834d0df0cbed8d7.tar.xz
linux-e308a5d806c852f56590ffdd3834d0df0cbed8d7.zip
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 'drivers/net/sfc')
-rw-r--r--drivers/net/sfc/efx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index 74265d8553b8..e1257e556e48 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -697,6 +697,8 @@ static void efx_stop_port(struct efx_nic *efx)
/* Serialise against efx_set_multicast_list() */
if (efx_dev_registered(efx)) {
netif_tx_lock_bh(efx->net_dev);
+ netif_addr_lock(efx->net_dev);
+ netif_addr_unlock(efx->net_dev);
netif_tx_unlock_bh(efx->net_dev);
}
}