netdev
[Top] [All Lists]

Re: [PATCH] PKT_SCHED: Fix double locking in tcindex destroy path

To: Thomas Graf <tgraf@xxxxxxx>
Subject: Re: [PATCH] PKT_SCHED: Fix double locking in tcindex destroy path
From: "David S. Miller" <davem@xxxxxxxxxxxxx>
Date: Mon, 20 Dec 2004 15:36:24 -0800
Cc: kaber@xxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20041210124445.GV1371@xxxxxxxxxxxxxx>
References: <20041210014918.GT1371@xxxxxxxxxxxxxx> <41B90B81.1020102@xxxxxxxxx> <20041210124445.GV1371@xxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Fri, 10 Dec 2004 13:44:45 +0100
Thomas Graf <tgraf@xxxxxxx> wrote:

> * Patrick McHardy <41B90B81.1020102@xxxxxxxxx> 2004-12-10 03:35
> > Thomas Graf wrote:
> > 
> > >tcindex's destroy uses its own delete functions to destroy its
> > >configuration. The delete function (correctly) takes the qdisc_tree_lock
> > >to prevent list walkings from happening while removing from the list.
> > >The qdisc_tree_lock is already held if we're comming via the destroy
> > >path and thus a double locking takes place.
> > >
> > >Patch not needed for 2.4 since both destroy paths are unlocked but will
> > >be needed if we add them.
> > > 
> > >
> > Looks correct, but 2.4 does need this. qdisc_destroy in 2.4 always
> > happens under dev->queue_lock. For example dev_shutdown from 2.4:
> 
> Not 100% correct since cls_api.c drops the lock before calling
> tcf_destroy but the patch is indeed needed and it's not a problem
> if dev->queue_lock is not taken since it is already unlinked as you
> correctly stated in your previous mail. Thanks Patrick.
> 
> Patch also applies to 2.4 with some fuzz.
> 
> Signed-off-by: Thomas Graf <tgraf@xxxxxxx>

I think the conditional locking is quite ugly, but I can't
suggest something better at this time.

Patch applied to both 2.4.x and 2.6.x, thanks Patrick
and Thomas.

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