Re: [regression] Latest git has WARN_ON storm with e1000e driver

From: Linus Torvalds
Date: Fri Oct 03 2008 - 12:09:15 EST




On Fri, 3 Oct 2008, Christian Borntraeger wrote:
>
> kernel_init does lock_kernel (which does preempt_disable).
> The kernel_unlock is done in init_post. As far as I can see, this happens
> after the driver init calls.

Yes. I just came to the same conclusion: preempt_count is 1 already in
do_one_initcall().

So this whole bug is actually because that debug test is just _broken_. It
shouldn't be WARN_ON(preempt_count()), it should be 'might_sleep()', which
does it right.

The right thing to check is "in_atomic() || irqs_disabled()".

Duh. That was wasted effort for a buggy test.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/