• Daniel Lezcano's avatar
    veth: fix dev refcount race · c15853f2
    Daniel Lezcano authored
    When deleting the veth driver, veth_close calls netif_carrier_off
    for the two extremities of the network device. netif_carrier_off on
    the peer device will fire an event and hold a reference on the peer
    device. Just after, the peer is unregistered taking the rtnl_lock while
    the linkwatch_event is scheduled. If __linkwatch_run_queue does not
    occurs before the unregistering, unregister_netdevice will wait for
    the dev refcount to reach zero holding the rtnl_lock and linkwatch_event
    will wait for the rtnl_lock and hold the dev refcount.
    Signed-off-by: default avatarDaniel Lezcano <dlezcano@fr.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
veth.c 9.8 KB