From: Stephen Hemminger <shemminger@osdl.org>

The net bridge code oopses at present because it is running init_tier()
against pending timers.

The bridge needs to ignore up/down notifications when it is down (like 2.4);
somewhere with all the other changes I put in, a bug got in and it was looking
at networks when the bridge is down.  When bridge comes up it scans and sees
the state...



 net/bridge/br_notify.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff -puN net/bridge/br_notify.c~bridge-notification-fix net/bridge/br_notify.c
--- 25/net/bridge/br_notify.c~bridge-notification-fix	2003-07-29 20:27:05.000000000 -0700
+++ 25-akpm/net/bridge/br_notify.c	2003-07-29 20:27:05.000000000 -0700
@@ -39,19 +39,23 @@ static int br_device_event(struct notifi
 	br = p->br;
 
 	spin_lock_bh(&br->lock);
+
 	switch (event) 
 	{
 	case NETDEV_CHANGEADDR:
 		br_fdb_changeaddr(p, dev->dev_addr);
-		br_stp_recalculate_bridge_id(br);
+		if (br->dev->flags & IFF_UP)
+			br_stp_recalculate_bridge_id(br);
 		break;
 
 	case NETDEV_DOWN:
-		br_stp_disable_port(p);
+		if (br->dev->flags & IFF_UP)
+			br_stp_disable_port(p);
 		break;
 
 	case NETDEV_UP:
-		br_stp_enable_port(p);
+		if (br->dev->flags & IFF_UP)
+			br_stp_enable_port(p);
 		break;
 
 	case NETDEV_UNREGISTER:

_