Re: kmalloc without GFP_xxx?

From: Manfred Spraul
Date: Wed Jun 29 2005 - 15:30:47 EST


Denis wrote:

It struck me that kernel actually can figure out whether it's okay
to sleep or not by looking at combination of (flags & __GFP_WAIT)
and ((in_atomic() || irqs_disabled()) as it already does this for
might_sleep() barfing:

Wrong:
- the kernel cannot figure out if a thread owns a normal spinlock(): in_atomic detects spin_lock_bh(), irqs_disabled spin_lock_irq(). But spin_lock has no global state.
- dito for get_cpu()/put_cpu users.
- dito for rcu users, or anyone else that uses preempt_disable() for whatever purpose

--
Manfred

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