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

From: Thomas Gleixner
Date: Fri Oct 03 2008 - 15:43:38 EST


On Fri, 3 Oct 2008, Linus Torvalds wrote:
> 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.

Stupid me. Yes I should have used might_sleep. It just did not trigger
here as I did not have the driver compiled into the kernel.

Sorry,

tglx
--
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/