On Tue, 17 Jun 2008, Johannes Berg wrote: > > This warning has started to trigger with mac80211 because it can, under > some circumstances, use spin_lock_bh() protected sections within > irq-disabled sections. Is that a bug? Yes, it's a bug. Why? Not because of the "spin_lock_bh()" itself, but because of the _unlock_, which does a "local_bh_enable_ip()", which in turn will check the whole "do_softirq()" if it was the last softirq_count. And you must not do softirq's when hard-irq's were disabled! So it should in theory be ok (but perhaps a bit odd) to do something like spin_lock_irq(&irq_lock); ..do something.. spin_lock_bh(&bh_lock); spin_unlock_irq(&irq_lock); .. do something else .. spin_unlock_bh(&bh_lock); where the "spin_lock_bh()" itself is in an irq-locked context - as long as the "spin_unlock_bh()" is *not*. See? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html