Subject: Re: 2.6.8-rc4-bk1 problem: unregister_netdevice: waiting for ppp0 to become free. Usage count = 1

From: "David S. Miller" <[email-masked]>
Date: Sun, 22 Aug 2004 21:47:46 -0700

On Sun, 22 Aug 2004 14:39:57 +0200
Patrick McHardy <[email-masked]> wrote:

> Herbert Xu wrote:
> 
> >Nuno Silva <[email-masked]> wrote:
> >  
> >
> >>The problem is in the QoS code. If I start ppp whithout the 
> >>    
> >>
> >
> >OK, this appears to be due to the changeset titled
> >
> >[PKT_SCHED]: Refcount qdisc->dev for __qdisc_destroy rcu-callback
> >
> >It adds a reference to dev.
> >
> >I don't see any code that cleans up that reference when the dev goes
> >down.  So someone needs to add that similar to the code in net/core/dst.c.
> >
> >Patrick, could you please have a look at this?
> >  
> The reference is dropped in __qdisc_destroy. The problem lies in the CBQ
> qdisc, it doesn't destroy the root-class and leaks the inner qdisc. These
> two patches for 2.4 and 2.6 fix the problem.

Awesome, good detective work guys.

Patch applied, thanks.