mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()
Le dimanche 05 décembre 2010 à 09:19 +0100, Eric Dumazet a écrit : > Hmm.. > > If somebody can explain why RTNL is held in arp_ioctl() (and therefore > in arp_req_delete()), we might first remove RTNL use in arp_ioctl() so > that your patch can be applied. > > Right now it is not good, because RTNL wont be necessarly held when you > are going to call arp_invalidate() ? While doing this analysis, I found a refcount bug in llc, I'll send a patch for net-2.6 Meanwhile, here is the patch for net-next-2.6 Your patch then can be applied after mine. Thanks [PATCH] net: RCU conversion of dev_getbyhwaddr() and arp_ioctl() dev_getbyhwaddr() was called under RTNL. Rename it to dev_getbyhwaddr_rcu() and change all its caller to now use RCU locking instead of RTNL. Change arp_ioctl() to use RCU instead of RTNL locking. Note: this fix a dev refcount bug in llc Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a2d4b65d47
commit
941666c2e3
5 changed files with 27 additions and 27 deletions
|
@ -1360,7 +1360,8 @@ static inline struct net_device *first_net_device(struct net *net)
|
|||
|
||||
extern int netdev_boot_setup_check(struct net_device *dev);
|
||||
extern unsigned long netdev_boot_base(const char *prefix, int unit);
|
||||
extern struct net_device *dev_getbyhwaddr(struct net *net, unsigned short type, char *hwaddr);
|
||||
extern struct net_device *dev_getbyhwaddr_rcu(struct net *net, unsigned short type,
|
||||
const char *hwaddr);
|
||||
extern struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type);
|
||||
extern struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type);
|
||||
extern void dev_add_pack(struct packet_type *pt);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue