Messages in this thread | | | Date | Fri, 3 Oct 2008 21:41:06 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [regression] Latest git has WARN_ON storm with e1000e driver |
| |
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
| |