Cc: Robert Hancock <hancockr@...>, Linux Kernel Mailing List <linux-kernel@...>, Linus Torvalds <torvalds@...>, NetDev <netdev@...>, Andrew Morton <akpm@...>, Jeff Garzik <jgarzik@...>, Jens Axboe <jens.axboe@...>
I'd not really call "breaks external patch" a regression ;)
What we really ought to be doing is always initialize the pool, from
the right process context. However, we need to make it such that we
can detect that there is zero __GFP_DMA memory in the system, and bail
out in that case. Doing it on-demand is just not going to fly; by that
time it's just too late (the pool may have been eaten already, the context
might be nasty to do allocations from etc etc).
the sata_nv driver has to do it on finding a cdrom; afaik it has something
like a different DMA mask for disks and cdroms, and it scales down once you
insert a CD.
--