From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932278AbbLVAGc (ORCPT ); Mon, 21 Dec 2015 19:06:32 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:33026 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752236AbbLUXsD (ORCPT ); Mon, 21 Dec 2015 18:48:03 -0500 From: Al Viro To: linux-kernel@vger.kernel.org Cc: Linus Torvalds Subject: [POC][PATCH 25/83] dma_4u_alloc_coherent(): don't mix virtual and physical addresses Date: Mon, 21 Dec 2015 23:46:58 +0000 Message-Id: <1450741676-5865-25-git-send-email-viro@ZenIV.linux.org.uk> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <20151221234615.GW20997@ZenIV.linux.org.uk> References: <20151221234615.GW20997@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Al Viro Signed-off-by: Al Viro --- arch/sparc/kernel/iommu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c index eae7b6b..18a40c6 100644 --- a/arch/sparc/kernel/iommu.c +++ b/arch/sparc/kernel/iommu.c @@ -215,23 +215,22 @@ static void *dma_4u_alloc_coherent(struct device *dev, size_t size, if (unlikely(!page)) return NULL; - first_page = (unsigned long) page_address(page); - memset((char *)first_page, 0, PAGE_SIZE << order); + ret = page_address(page); + memset(ret, 0, PAGE_SIZE << order); iommu = dev->archdata.iommu; iopte = alloc_npages(dev, iommu, size >> IO_PAGE_SHIFT); if (unlikely(iopte == NULL)) { - free_pages((void *)first_page, order); + free_pages(ret, order); return NULL; } *dma_addrp = (iommu->tbl.table_map_base + ((iopte - iommu->page_table) << IO_PAGE_SHIFT)); - ret = (void *) first_page; npages = size >> IO_PAGE_SHIFT; - first_page = __pa(first_page); + first_page = __pa(ret); while (npages--) { iopte_val(*iopte) = (IOPTE_CONSISTENT(0UL) | IOPTE_WRITE | -- 2.1.4