netdev
[Top] [All Lists]

Re: 2.6.7-rc3: unregister_netdevice: waiting for tun0 to become free. Us

To: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Subject: Re: 2.6.7-rc3: unregister_netdevice: waiting for tun0 to become free. Usage count = 1
From: "David S. Miller" <davem@xxxxxxxxxx>
Date: Sun, 13 Jun 2004 21:27:08 -0700
Cc: schwab@xxxxxxx, netdev@xxxxxxxxxxx, yoshfuji@xxxxxxxxxxxxxx
In-reply-to: <20040614042216.GA28669@xxxxxxxxxxxxxxxxxxx>
References: <20040613121514.6b3c1c8a.davem@xxxxxxxxxx> <E1BZeW1-0008Ny-00@xxxxxxxxxxxxxxxxxxxxxxxx> <20040613234142.GA32329@xxxxxxxxxxxxxxxxxxx> <20040613183622.3a814506.davem@xxxxxxxxxx> <20040614015013.GA11048@xxxxxxxxxxxxxxxxxxx> <20040613210725.70dbd016.davem@xxxxxxxxxx> <20040614042216.GA28669@xxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Mon, 14 Jun 2004 14:22:16 +1000
Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:

> OK, in that case either they all need to check whether idev is
> NULL before doing this or we'll need to fix ->ifdown to set the
> dev to something other than NULL.

That's correct, I don't exactly how to deal with that race
just yet.

> BTW in looking at this I've found two bugs in the dst code wrt
> cleaning up net devices.
> 
> 1. The code in dst_dev_event relies on the entries with dev in it
> getting onto the garbage list before it is called.  Unfortunately
> for routing entries, the flushing is done asynchronusly so it is
> entirely possible for the entries to get onto the garbage list after
> dst_dev_event has been called twice (DOWN and then UNREGISTER).
> 
> This is not fatal though since another GC run will pick them up in
> at most two minutes.  But the user may well be alarmed by those
> dreaded "waiting for..." errors.

Right.

> 2. dst_dev_event doesn't clean up dst->child at all.

DST object is disassembled at GC time, so I classift this just
like case #1 above.

<Prev in Thread] Current Thread [Next in Thread>