: A lot of pieces of code do things like this, start a BH atomic from
: base level code and call something which can only legitimately run
: from non-IRQ code under certain circumstances.
: Is this just an oversight, or is there something else going on?
Really, it was misprint and I hope it was the only place where networking
really did this weird thing (btw, it was repaired just after 2.1.79 appeared,
look at Alan's patch)
Pedro used gfp_any() to make such kind of things,
but one day I found that in_interrupt() does not work (at least, on UP)
or I do not understand how it does work :-) :-), so that I used GFP_ATOMIC
everywhere, where call from bh protected context was possible.
In any case, CORRECT gfp_any() would be very useful thing, especially
for IPv6 where almost all the functions can be called both from normal
mode and from bh and from bh protected context.
Alexey Kuznetsov