The patch titled mm: add a might_sleep_if() to dma_pool_alloc() has been added to the -mm tree. Its filename is mm-add-a-might_sleep_if-in-dma_pool_alloc.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: mm: add a might_sleep_if() to dma_pool_alloc() From: Dima Zavin <dima@xxxxxxxxxxx> Buggy drivers (e.g. fsl_udc) could call dma_pool_alloc from atomic context with GFP_KERNEL. In most instances, the first pool_alloc_page call would succeed and the sleeping functions would never be called. This allowed the buggy drivers to slip through the cracks. Add a might_sleep_if() checking for __GFP_WAIT in flags. Signed-off-by: Dima Zavin <dima@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/dmapool.c | 2 ++ 1 file changed, 2 insertions(+) diff -puN mm/dmapool.c~mm-add-a-might_sleep_if-in-dma_pool_alloc mm/dmapool.c --- a/mm/dmapool.c~mm-add-a-might_sleep_if-in-dma_pool_alloc +++ a/mm/dmapool.c @@ -311,6 +311,8 @@ void *dma_pool_alloc(struct dma_pool *po size_t offset; void *retval; + might_sleep_if(mem_flags & __GFP_WAIT); + spin_lock_irqsave(&pool->lock, flags); restart: list_for_each_entry(page, &pool->page_list, page_list) { _ Patches currently in -mm which might be from dima@xxxxxxxxxxx are mm-add-a-might_sleep_if-in-dma_pool_alloc.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html