Subject: Re: [net-2.6][DRIVER][VETH] fix dev refcount race

From: Pavel Emelyanov <[email-masked]>
Date: Tue, 19 Feb 2008 19:30:44 +0300

Daniel Lezcano wrote:
> Subject: veth fix dev refcount race
> From: Daniel Lezcano <[email-masked]>
> 
> 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

Brr... AFAIS the unregister process waits for refcount without
the rtnl_lock. The run-todo was invented for this. No?

> will wait for the rtnl_lock and hold the dev refcount.
> 
> Signed-off-by: Daniel Lezcano <[email-masked]>
> ---
>  drivers/net/veth.c |   53 ++++++++++++++++++++++++++++++++++++++++-------------
>  1 file changed, 40 insertions(+), 13 deletions(-)