Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757915Ab2EJNTk (ORCPT ); Thu, 10 May 2012 09:19:40 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:31383 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753340Ab2EJNTi (ORCPT ); Thu, 10 May 2012 09:19:38 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: TEXT/PLAIN Date: Thu, 10 May 2012 15:19:35 +0200 From: Marek Szyprowski Subject: [PATCH] drivers: cma: don't fail if migration returns -EAGAIN In-reply-to: <1333462221-3987-1-git-send-email-m.szyprowski@samsung.com> To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linux-mm@kvack.org, linaro-mm-sig@lists.linaro.org Cc: Michal Nazarewicz , Marek Szyprowski , Kyungmin Park , Russell King , Andrew Morton , KAMEZAWA Hiroyuki , Daniel Walker , Mel Gorman , Arnd Bergmann , Jesse Barker , Jonathan Corbet , Chunsang Jeong , Dave Hansen , Benjamin Gaignard , Rob Clark , Ohad Ben-Cohen , Sandeep Patil Message-id: <1336655975-15729-1-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.7.10 References: <1333462221-3987-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1218 Lines: 32 alloc_contig_range() function might return -EAGAIN if migrate_pages() call fails for some temporarily locked pages. Such case should not be fatal to dma_alloc_from_contiguous(), which should retry allocation like in case of -EBUSY error. Reported-by: Haojian Zhuang Signed-off-by: Marek Szyprowski --- drivers/base/dma-contiguous.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c index 78efb03..e46e2fb 100644 --- a/drivers/base/dma-contiguous.c +++ b/drivers/base/dma-contiguous.c @@ -346,7 +346,7 @@ struct page *dma_alloc_from_contiguous(struct device *dev, int count, if (ret == 0) { bitmap_set(cma->bitmap, pageno, count); break; - } else if (ret != -EBUSY) { + } else if (ret != -EBUSY && ret != -EAGAIN) { goto error; } pr_debug("%s(): memory range at %p is busy, retrying\n", -- 1.7.1.569.g6f426 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/