diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-15 00:13:44 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-15 00:13:44 -0700 |
commit | e308a5d806c852f56590ffdd3834d0df0cbed8d7 (patch) | |
tree | 294ff654e90950f5162737c26f4799b0b710b748 /drivers/media/dvb/dvb-core/dvb_net.c | |
parent | f1f28aa3510ddb84c966bac65611bb866c77a092 (diff) | |
download | linux-stable-e308a5d806c852f56590ffdd3834d0df0cbed8d7.tar.gz linux-stable-e308a5d806c852f56590ffdd3834d0df0cbed8d7.tar.bz2 linux-stable-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/media/dvb/dvb-core/dvb_net.c')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_net.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c index c2334aef4143..809d18c663bc 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c @@ -1134,6 +1134,7 @@ static void wq_set_multicast_list (struct work_struct *work) dvb_net_feed_stop(dev); priv->rx_mode = RX_MODE_UNI; netif_tx_lock_bh(dev); + netif_addr_lock(dev); if (dev->flags & IFF_PROMISC) { dprintk("%s: promiscuous mode\n", dev->name); @@ -1158,6 +1159,7 @@ static void wq_set_multicast_list (struct work_struct *work) } } + netif_addr_unlock(dev); netif_tx_unlock_bh(dev); dvb_net_feed_start(dev); } |