summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-15 00:08:33 -0700
committerDavid S. Miller <davem@davemloft.net>2008-07-15 00:08:33 -0700
commitf1f28aa3510ddb84c966bac65611bb866c77a092 (patch)
treedc8509a61667c52ee43df64bf69566569538b691
parentf66ac03d497c162c70cd0ccc802ce1777073cdf3 (diff)
downloadblackbird-op-linux-f1f28aa3510ddb84c966bac65611bb866c77a092.tar.gz
blackbird-op-linux-f1f28aa3510ddb84c966bac65611bb866c77a092.zip
netdev: Add addr_list_lock to struct net_device.
This will be used to protect the per-device unicast and multicast address lists, as well as the callbacks into the drivers which configure such state such as ->set_rx_mode() and ->set_multicast_list(). Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/netdevice.h1
-rw-r--r--net/core/dev.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index ba5c4639ea91..fd0365219181 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -609,6 +609,7 @@ struct net_device
unsigned char addr_len; /* hardware address length */
unsigned short dev_id; /* for shared network cards */
+ spinlock_t addr_list_lock;
struct dev_addr_list *uc_list; /* Secondary unicast mac addresses */
int uc_count; /* Number of installed ucasts */
int uc_promisc;
diff --git a/net/core/dev.c b/net/core/dev.c
index feaab4898a5b..d933d1bfa6fa 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3836,6 +3836,7 @@ int register_netdevice(struct net_device *dev)
BUG_ON(!dev_net(dev));
net = dev_net(dev);
+ spin_lock_init(&dev->addr_list_lock);
netdev_init_queue_locks(dev);
dev->iflink = -1;
OpenPOWER on IntegriCloud