On Sat, 28 Dec 2013 14:37:32 -0800 Curt Brune <curt@xxxxxxxxxxxxxxxxxxx> wrote: > br_multicast_set_hash_max() is called from process context in > net/bridge/br_sysfs_br.c by the sysfs store_hash_max() function. > > br_multicast_set_hash_max() calls spin_lock(&br->multicast_lock), > which can deadlock the CPU if a softirq that also tries to take the > same lock interrupts br_multicast_set_hash_max() while the lock is > held . This can happen quite easily when any of the bridge multicast > timers expire, which try to take the same lock. Running lockdep should catch these kind of things without having to do stress tests.