• E
    ip: ip_ra_control() rcu fix · 592fcb9d
    Eric Dumazet 提交于
    commit 66018506 (ip: Router Alert RCU conversion) introduced RCU
    lookups to ip_call_ra_chain(). It missed proper deinit phase :
    When ip_ra_control() deletes an ip_ra_chain, it should make sure
    ip_call_ra_chain() users can not start to use socket during the rcu
    grace period. It should also delay the sock_put() after the grace
    period, or we risk a premature socket freeing and corruptions, as
    raw sockets are not rcu protected yet.
    
    This delay avoids using expensive atomic_inc_not_zero() in
    ip_call_ra_chain().
    Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    592fcb9d
ip.h 12.7 KB