| To: | Thomas Graf <tgraf@xxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] PKT_SCHED: Fix double locking in tcindex destroy path |
| From: | Patrick McHardy <kaber@xxxxxxxxx> |
| Date: | Fri, 10 Dec 2004 03:35:45 +0100 |
| Cc: | "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx |
| In-reply-to: | <20041210014918.GT1371@postel.suug.ch> |
| References: | <20041210014918.GT1371@postel.suug.ch> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.3) Gecko/20041008 Debian/1.7.3-5 |
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. 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: write_lock(&qdisc_tree_lock);
spin_lock_bh(&dev->queue_lock);
...
qdisc_destroy(qdisc);But please rename "already_locked" to "lock" to make it look less like a hack to avoid deadlock. + return __tcindex_delete(tp,arg, 1); And a space is missing :) Regards Patrick |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH] PKT_SCHED: Prevent destroying via RTM_DELTFILTER while classifying, Patrick McHardy |
|---|---|
| Next by Date: | Re: [PATCH] netem: restart device after inserting packets, Patrick McHardy |
| Previous by Thread: | [PATCH] PKT_SCHED: Fix double locking in tcindex destroy path, Thomas Graf |
| Next by Thread: | Re: [PATCH] PKT_SCHED: Fix double locking in tcindex destroy path, Thomas Graf |
| Indexes: | [Date] [Thread] [Top] [All Lists] |