Re: kmalloc without GFP_xxx?

Manfred Spraul
2005-06-29T20:28:49Z

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