A deadlock was found in bridge netfilter code (2.4 only), when a device is 
removed.
The device removal path causes a BPDU to be generated and ends up
self deadlocking on the BR lock.

Simple fix would be to avoid generating config bpdu's
immediately when becoming root bridge, and just let the first hello
timer tick do that.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>

--- linux-2.4.33.3.orig/net/bridge/br_stp.c     2006-10-30 12:46:59.000000000 
-0800
+++ linux-2.4.33.3/net/bridge/br_stp.c  2006-10-30 12:53:59.000000000 -0800
@@ -140,8 +140,8 @@
        br->forward_delay = br->bridge_forward_delay;
        br_topology_change_detection(br);
        br_timer_clear(&br->tcn_timer);
-       br_config_bpdu_generation(br);
-       br_timer_set(&br->hello_timer, jiffies);
+
+       br_timer_set(&br->hello_timer, jiffies - br->hello_time);
 }
 
 /* called under bridge lock */



-- 
Stephen Hemminger <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to