Re: __vmalloc with GFP_ATOMIC causes 'sleeping from invalid context'

From: Giridhar Pemmasani
Date: Mon May 22 2006 - 10:54:34 EST


On Mon, 22 May 2006 17:34:32 +1000, Nick Piggin <nickpiggin@xxxxxxxxxxxx> said:

>> > Oh, and __get_vm_area_node{_mask} should
>> BUG_ON(in_interrupt());
>>
>> With the patch I sent earlier, this may not be required: Since
>> __get_vm_area_node calls kmalloc, it should be taken care of in
>> kmalloc and friends. Currently cache_alloc_debugcheck_before
>> doesn't check for in_interrupt(); perhaps that is the right place
>> to add

> vmlist_lock is not irq safe. If you call it from interrupt, you
> can deadlock.

Aha. I will add BUG_ON(in_interrupt()) to __get_vm_area_node in the
next round (if there is interest in the patch).

Thanks,
Giri
-
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/