Subject: Re: PROBLEM: in_atomic() misuse all over the place

From: Andi Kleen <[email-masked]>
Date: Sat, 31 Jan 2009 06:55:08 +0100

> There's a bit of a problem here.  If someone accidentally uses
> gfp_any() inside a spinlock, it will do a sleeping allocation on
> non-preempt kernels and will do an atomic allocation on preemptible
> kernels, so we won't get to see the warning which would allow us to fix
> the bug.

Yes exporting the function to drivers is dangerous I agree because
it's easy to abuse.

> Would using irq_count() work?  If so, that would fix this up.

There's nothing that works reliably to detect spinlocks on non
preempt kernels.

-Andi

-- 
[email-masked] -- Speaking for myself only.