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>
This commit is contained in:
Родитель
f66ac03d49
Коммит
f1f28aa351
|
@ -609,6 +609,7 @@ struct net_device
|
||||||
unsigned char addr_len; /* hardware address length */
|
unsigned char addr_len; /* hardware address length */
|
||||||
unsigned short dev_id; /* for shared network cards */
|
unsigned short dev_id; /* for shared network cards */
|
||||||
|
|
||||||
|
spinlock_t addr_list_lock;
|
||||||
struct dev_addr_list *uc_list; /* Secondary unicast mac addresses */
|
struct dev_addr_list *uc_list; /* Secondary unicast mac addresses */
|
||||||
int uc_count; /* Number of installed ucasts */
|
int uc_count; /* Number of installed ucasts */
|
||||||
int uc_promisc;
|
int uc_promisc;
|
||||||
|
|
|
@ -3836,6 +3836,7 @@ int register_netdevice(struct net_device *dev)
|
||||||
BUG_ON(!dev_net(dev));
|
BUG_ON(!dev_net(dev));
|
||||||
net = dev_net(dev);
|
net = dev_net(dev);
|
||||||
|
|
||||||
|
spin_lock_init(&dev->addr_list_lock);
|
||||||
netdev_init_queue_locks(dev);
|
netdev_init_queue_locks(dev);
|
||||||
|
|
||||||
dev->iflink = -1;
|
dev->iflink = -1;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче