Re: Bridge deadlock in 2.4.33

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux