On Sun, 29 Oct 2006 19:29:27 +0200 "Lior Dotan" <liodot@xxxxxxxxx> wrote: > Hi, > > I hope this is the right list for this. > I recently upgraded from 2.4.20 to 2.4.33 both with the ebtables patch > running an SMP kernel on a UP box and now I have the following problem: > My box has some rules in ebtables and iptables and a bridge with 3 > ports. When I try to remove eth2, which is connected to other bridges, > from it the box hangs. I used KDB to catch the trace and got this: > > nf_hook_slow+0x75 > [bridge]br_send_bpdu+0x19f > [bridge]br_send_config_bpdu+0x189 > [bridge]br_transmit_config+0xca > [bridge]br_config_bpdu_generation+0x45 > [bridge]br_become_root_bridge+0x48 > [bridge]br_stp_disable_port+0x9a > [bridge]__br_del_if+0x3e > [bridge]br_del_if+0x47 > [bridge]br_ioctl_device+0x59 > [bridge]br_ioctl+0x66 > [bridge]br_dev_do_ioctl+0x91 > dev_ifsioc+0x420 > dev_ioctl+0x262 > inet_ioctl+0x1d3 > sock_ioctl+0x3f > sys_ioctl+0x104 > system_call+0x33 > > I traced the problem to nf_hook_slow() trying to get a read lock on > BR_NETPROTO_LOCK but br_del_if() already gets a write lock earlier in > the stack. > I also checked and in 2.4.20 br_send_bpdu() called dev_queue_xmit() > directly and now it goes through netfilter. > I wrote this small patch just to see what will happen: NACK fix it correctly (now spin_islocked() calls) or upgrade to 2.6 Stephen Hemminger <shemminger@xxxxxxxx> - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html