>>>>> " " == David S Miller <davem@redhat.com> writes: > From: shmulik.hen@intel.com Date: Thu, 27 Mar 2003 15:32:02 > +0200 (IST) > Further more, holding a lock_irq doesn't mean bottom halves > are disabled too, it just means interrupts are disabled and > no *new* softirq can be queued. Consider the following > situation: > I think local_bh_enable() should check irqs_disabled() and > honour that. What you are showing here, that BH's can run via > local_bh_enable() even when IRQs are disabled, is a BUG(). > IRQ disabling is meant to be stronger than softint disabling. In that case, you'll need to have things like spin_lock_irqrestore() call local_bh_enable() in order to run the pending softirqs. Is that worth the trouble? Cheers, Trond - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html