From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932200AbbLVAGb (ORCPT ); Mon, 21 Dec 2015 19:06:31 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:33028 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752238AbbLUXsD (ORCPT ); Mon, 21 Dec 2015 18:48:03 -0500 From: Al Viro To: linux-kernel@vger.kernel.org Cc: Linus Torvalds Subject: [POC][PATCH 26/83] dma_4v_alloc_coherent(): don't mix virtual and physical addresses Date: Mon, 21 Dec 2015 23:46:59 +0000 Message-Id: <1450741676-5865-26-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/pci_sun4v.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c index 3eb8907..3ea1937 100644 --- a/arch/sparc/kernel/pci_sun4v.c +++ b/arch/sparc/kernel/pci_sun4v.c @@ -151,8 +151,8 @@ static void *dma_4v_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; @@ -163,8 +163,7 @@ static void *dma_4v_alloc_coherent(struct device *dev, size_t size, goto range_alloc_fail; *dma_addrp = (iommu->tbl.table_map_base + (entry << IO_PAGE_SHIFT)); - ret = (void *) first_page; - first_page = __pa(first_page); + first_page = __pa(ret); local_irq_save(flags); @@ -190,7 +189,7 @@ iommu_map_fail: iommu_tbl_range_free(&iommu->tbl, *dma_addrp, npages, IOMMU_ERROR_CODE); range_alloc_fail: - free_pages((void *)first_page, order); + free_pages(ret, order); return NULL; } -- 2.1.4