aboutsummaryrefslogtreecommitdiff
path: root/net/ipv6
diff options
context:
space:
mode:
authorRanko Zivojnovic <ranko@spidernet.net>2007-07-18 02:49:48 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2007-08-09 14:27:27 -0700
commit8a1c1646795c03edc0c4f18d3ad97e18e56f888c (patch)
treebac670dab6b5cbe8b8673a1646f74511b4cd69ae /net/ipv6
parent2e9d3cf88b10374bc7a863f4ad9906245d29d2b3 (diff)
gen estimator deadlock fix
[NET]: gen_estimator deadlock fix -Fixes ABBA deadlock noted by Patrick McHardy <kaber@trash.net>: > There is at least one ABBA deadlock, est_timer() does: > read_lock(&est_lock) > spin_lock(e->stats_lock) (which is dev->queue_lock) > > and qdisc_destroy calls htb_destroy under dev->queue_lock, which > calls htb_destroy_class, then gen_kill_estimator and this > write_locks est_lock. To fix the ABBA deadlock the rate estimators are now kept on an rcu list. -The est_lock changes the use from protecting the list to protecting the update to the 'bstat' pointer in order to avoid NULL dereferencing. -The 'interval' member of the gen_estimator structure removed as it is not needed. Signed-off-by: Ranko Zivojnovic <ranko@spidernet.net> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions