• Eric Dumazet's avatar
    net: RCU conversion of dev_getbyhwaddr() and arp_ioctl() · 941666c2
    Eric Dumazet authored
    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: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    941666c2
arp.c 36.1 KB