If lots of pages are free, but none of them happen to be in the DMA-able
region, then __get_free_pages() will fail to return DMA-able pages - as far as
I can see... This happened to me today, I reckon.
Is this a bug or a feature ?
The nitty-gritty: if you look in page_alloc.c, you see that if (nr_free_pages >
reserved_pages) then __get_free_pages will never call try_to_free_page.
I have a suspicion that this would surely have been caught by now, and thus
must be my mistake, but I really can't see where I'm going wrong...
Comments ?
Neil