Messages in this thread | | | Date | Sat, 31 Jan 2009 00:58:15 -0800 | From | Andrew Morton <> | Subject | Re: PROBLEM: in_atomic() misuse all over the place |
| |
On Sat, 31 Jan 2009 00:48:43 -0800 (PST) David Miller <davem@davemloft.net> wrote:
> From: Andrew Morton <akpm@linux-foundation.org> > Date: Fri, 30 Jan 2009 21:49:33 -0800 > > > Hang on. You said > > > > That's typically for softirq vs non softirq, which is important for > > the network stack. > > > > that's what in_softirq() does. > > > > Now, if networking is indeed using in_atomic() to detect > > are-we-inside-a-spinlock then networking is buggy. > > > > If networking is _not_ doing that then we can safely switch it to > > in_sortirq() or in_interrupt(). And this would reenable the bug > > detection which networking's use of in_atomic() accidentally > > suppressed. > > I think this is a reasonable conclusion, looking at the > gfp_any() users. > > Feel free to change it to use in_softirq() and see what > explodes in -mm. Report to me your findings :-)
I don't get much network coverage in my testing...
I went for in_interrupt(), which is in_softirq()||in_hardirq(). I guess that was a bit of a cop-out if the design decision is that this is purely for are-we-in-softirq decision making.
I'll set it to in_softirq() and shall see what happens..
| |