From patchwork Wed Jan 16 15:31:23 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 1989401 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id 6DA67DF2A2 for ; Wed, 16 Jan 2013 15:34:57 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TvUyV-000871-6f; Wed, 16 Jan 2013 15:32:23 +0000 Received: from mailout3.samsung.com ([203.254.224.33]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TvUy7-00080M-LN for linux-arm-kernel@lists.infradead.org; Wed, 16 Jan 2013 15:32:00 +0000 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MGQ0027Z5T2MF01@mailout3.samsung.com> for linux-arm-kernel@lists.infradead.org; Thu, 17 Jan 2013 00:31:54 +0900 (KST) X-AuditID: cbfee61a-b7fa66d0000004cf-9f-50f6c7eaffa4 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 1C.CE.01231.AE7C6F05; Thu, 17 Jan 2013 00:31:54 +0900 (KST) Received: from localhost.localdomain ([106.116.147.30]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MGQ00DNK5SNVP80@mmp1.samsung.com> for linux-arm-kernel@lists.infradead.org; Thu, 17 Jan 2013 00:31:54 +0900 (KST) From: Marek Szyprowski To: linux-arm-kernel@lists.infradead.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH 2/2] ARM: dma-mapping: use himem for DMA buffers for IOMMU-mapped devices Date: Wed, 16 Jan 2013 16:31:23 +0100 Message-id: <1358350284-6972-3-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1358350284-6972-1-git-send-email-m.szyprowski@samsung.com> References: <1358350284-6972-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrAJMWRmVeSWpSXmKPExsVy+t9jAd1Xx78FGCy5pW+x6fE1VgdGj81L 6gMYo7hsUlJzMstSi/TtErgy7v47wVxwlqOi410zWwPjJ7YuRk4OCQETiaalz1kgbDGJC/fW g8WFBBYxSnzZKd/FyAVkb2CSmH3sMTNIgk3AUKLrbRdYkYiAh8STFefA4swCh5kkpk+IALGF BaIlbn7ZARZnEVCV+L3zHdgCXgF3iX8zVwLZHEDLFCTmTLIBCXMCjfmy5z7UXneJaVN62SYw 8i5gZFjFKJpakFxQnJSea6hXnJhbXJqXrpecn7uJEezvZ1I7GFc2WBxiFOBgVOLh9Sr8GiDE mlhWXJl7iFGCg1lJhNdm77cAId6UxMqq1KL8+KLSnNTiQ4zSHCxK4ryMp54ECAmkJ5akZqem FqQWwWSZODilGhj75++cLvJG8fHmiU6Ws9n/TbG/3pAg63xDxG7htLwt0aVRK1VvcFpvFduc bvRze++jls6q7ClbStz0KmWDnCuY8ngflHMIzNipNOXVfOHtc6JnnIjnUDpX45/PXDjBWetv 3mKRz0duKsflbdg5V2Dn0TvmZdEuXKvsloW8n/rX8P43+YwisUAlluKMREMt5qLiRACuvhUk 8wEAAA== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130116_103200_063739_C75581BB X-CRM114-Status: GOOD ( 12.59 ) X-Spam-Score: -4.6 (----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-4.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [203.254.224.33 listed in list.dnswl.org] 3.0 KHOP_BIG_TO_CC Sent to 10+ recipients instaed of Bcc or a list -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.7 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Russell King - ARM Linux , Arnd Bergmann , Michal Nazarewicz , heesub.shin@samsung.com, Minchan Kim , Kyungmin Park , sj2202.park@samsung.com, lauraa@quicinc.com, Marek Szyprowski X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org IOMMU can provide access to any memory page, so there is no point in limiting the allocated pages only to lowmem, once other parts of dma-mapping subsystem correctly supports himem pages. Signed-off-by: Marek Szyprowski --- arch/arm/mm/dma-mapping.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 4080c37..9a6c8ce 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -1095,12 +1095,17 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size, return pages; } + /* + * IOMMU can map any pages, so himem can also be used here + */ + gfp |= __GFP_NOWARN | __GFP_HIGHMEM; + while (count) { int j, order = __fls(count); - pages[i] = alloc_pages(gfp | __GFP_NOWARN, order); + pages[i] = alloc_pages(gfp, order); while (!pages[i] && order) - pages[i] = alloc_pages(gfp | __GFP_NOWARN, --order); + pages[i] = alloc_pages(gfp, --order); if (!pages[i]) goto error;