On Tue, 25 Mar 2014, Sasha Levin wrote: > I have a lead on this. Consider the following: > > kmem_cache_alloc > __slab_alloc > local_irq_save() > deactivate_slab > __cmpxchg_double_slab > slab_unlock > __bit_spin_unlock > preempt_enable > [ Page Fault ] > > With this trace, it manifests as a "BUG: sleeping function called from invalid > context at arch/x86/mm/fault.c" on a might_sleep() in the page fault handler > (which is an issue on it's own), but I suspect it's also the cause of the > trace > above - preemption enabled and a race that removed the page. > > Could someone confirm please?
The preempt count is incremented earlier in bit_spin_lock so the preempt_enable() should not do anything. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/