From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018357; cv=none; d=zohomail.com; s=zohoarc; b=gVzA+0v5TVqq+6afd20xlSoqF8y3QYzloAIEAxdm6Vrn5IoQOIGR5a4EZUykOksQaXhzLGN/Dph5h9VvO4x2FeVkiDyESWoDsVZSaXffsnfWLiMNB6bvW2DuLm2GYTO0TvhIiHBLwRnvA/8J4jJhUc2xQb8lKa5Q5QzTiJh8l7M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018357; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=DW4KtEv4gVnNT5GbGXK9y6UZhKFkKz6YseUoFnJFxaM=; b=lcxqf+hHUCy9Xedykz47hQ7Om9ZYVpcdSAlkaNFRqnVUQwKdznD8a/p8ojg0+eY0maAN/HF1FQxy5Vulme80nay1kw5fvuNkrxzdb1Zha0gHc/uSY7qcoe8QpkPLg2gSosapuaI/J4owtuoVsX60CMuZqfsc2kqN42m9GBZkVrs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018357046511.70843425934595; Wed, 20 May 2020 16:45:57 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOq-0007x6-HA; Wed, 20 May 2020 23:45:24 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOp-0007ww-Hg for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:23 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f88ee45a-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:23 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1812920748; Wed, 20 May 2020 23:45:22 +0000 (UTC) X-Inumbo-ID: f88ee45a-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018322; bh=2rJi6KfJ7cKpdb3KgYosM8AG09eJiSBLH85aYQo6tfE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z/XEnES7H/3TARKOmkB1qbDupxUWdE2Iq1shY3iRXvUvUqgWMI9JC8cDHfeS8Yl+u +HcspWBrKeLpETCuygnY/0/UPeXGziAinuXs3JHNLhNZdDIMXyospJd0iz+iNx4WVf DXuaL5c43gHfkKb/gZV0rdGZ8hqWUrfcfPK0H0bI= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 01/10] swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses Date: Wed, 20 May 2020 16:45:11 -0700 Message-Id: <20200520234520.22563-1-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Boris Ostrovsky Don't just assume that virt_to_page works on all virtual addresses. Instead add a is_vmalloc_addr check and use vmalloc_to_page on vmalloc virt addresses. Signed-off-by: Boris Ostrovsky Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index b6d27762c6f8..a42129cba36e 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -335,6 +335,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t = size, void *vaddr, int order =3D get_order(size); phys_addr_t phys; u64 dma_mask =3D DMA_BIT_MASK(32); + struct page *pg; =20 if (hwdev && hwdev->coherent_dma_mask) dma_mask =3D hwdev->coherent_dma_mask; @@ -346,9 +347,11 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t= size, void *vaddr, /* Convert the size to actually allocated. */ size =3D 1UL << (order + XEN_PAGE_SHIFT); =20 + pg =3D is_vmalloc_addr(vaddr) ? vmalloc_to_page(vaddr) : + virt_to_page(vaddr); if (!WARN_ON((dev_addr + size - 1 > dma_mask) || range_straddles_page_boundary(phys, size)) && - TestClearPageXenRemapped(virt_to_page(vaddr))) + TestClearPageXenRemapped(pg)) xen_destroy_contiguous_region(phys, order); =20 xen_free_coherent_pages(hwdev, size, vaddr, (dma_addr_t)phys, attrs); --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018353; cv=none; d=zohomail.com; s=zohoarc; b=elq2dsWcqdAtjzbMXUQiJFgnGnuDFDYJPl+VJhxDfQeaErRFtjlqYsANC3d49ov6rKbP4ufaqeOOoGf3XCL7U2+I4nZuQdC5onmQMTgnjs4Y+GRgmJwJBE1OQQ9mU9m6iWmPisiBX1SFSvzbAw5aeTMZLcqLu7Vwqusr7mXl6F0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018353; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=y4d7bNmrr6FZDMzc9lOAiQWy/Etlp1DKBwXGcQ4D1rE=; b=DA3Z2jCvAn/MwpOvCrQ1yP/6+p60EOK4BjbaYWd33tfIzZKHL34zGRfFXKfzqWCewdRt9AnwqEj0m74WovWRhE7JpVTd6XzcvwfAay6KFCrlOG+0g71Y0XF4IHlI0EkUIeU1sC/3cXUd928dZ761U/2ww6BvpWoRyudandT13lA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 159001835375512.465477887451357; Wed, 20 May 2020 16:45:53 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOr-0007xN-P6; Wed, 20 May 2020 23:45:25 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOq-0007x1-9y for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:24 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f88ee45b-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:23 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 88F6120873; Wed, 20 May 2020 23:45:22 +0000 (UTC) X-Inumbo-ID: f88ee45b-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018322; bh=Vv+EdXpTbwnuZjYd1z0k52yCJtFShb1TwXsEeRgOU74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sBVUvkEnVb5CTQSI2t90TDC/MfBITVXjrBOqmirzQIzAeJwdr1sVZyo9BaUXBQWb6 LLUhyQ43M/LP6uZtRnjF0h93Ma1z5Q2Gci6bg0La5Pw99Q96J4Tt/c0jbgFC2I1Iiz ES8P300ufpQlz2z+r0K7tnfeD8kqZ32GjZyT1K4U= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 02/10] swiotlb-xen: remove start_dma_addr Date: Wed, 20 May 2020 16:45:12 -0700 Message-Id: <20200520234520.22563-2-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini It is not strictly needed. Call virt_to_phys on xen_io_tlb_start instead. It will be useful not to have a start_dma_addr around with the next patches. Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index a42129cba36e..b5e0492b07b9 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -52,8 +52,6 @@ static unsigned long xen_io_tlb_nslabs; * Quick lookup value of the bus address of the IOTLB. */ =20 -static u64 start_dma_addr; - /* * Both of these functions should avoid XEN_PFN_PHYS because phys_addr_t * can be 32bit when dma_addr_t is 64bit leading to a loss in @@ -241,7 +239,6 @@ int __ref xen_swiotlb_init(int verbose, bool early) m_ret =3D XEN_SWIOTLB_EFIXUP; goto error; } - start_dma_addr =3D xen_virt_to_bus(xen_io_tlb_start); if (early) { if (swiotlb_init_with_tbl(xen_io_tlb_start, xen_io_tlb_nslabs, verbose)) @@ -389,7 +386,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device *d= ev, struct page *page, */ trace_swiotlb_bounced(dev, dev_addr, size, swiotlb_force); =20 - map =3D swiotlb_tbl_map_single(dev, start_dma_addr, phys, + map =3D swiotlb_tbl_map_single(dev, virt_to_phys(xen_io_tlb_start), phys, size, size, dir, attrs); if (map =3D=3D (phys_addr_t)DMA_MAPPING_ERROR) return DMA_MAPPING_ERROR; --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018358; cv=none; d=zohomail.com; s=zohoarc; b=mQdl+Nf/Lc5iEiMRS6IoeUfJbgvmgkJisimQLpVxobq5mdxurxizt7ujaMk9V5+6+P8k/7CKBH/Vc7kZ2J6W3INtRHLMW1j0ZLwmVy/xY51kOwZG4yk63+8KfVWdbLGDz51djxNtDbi6mbxGQbkTEDOKjNYzPaliF3vrQ1fABhM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018358; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=Fbh4+uqlHVQW/JrTtYbA6nukpq0tgf+63Ad9XUaE5vg=; b=OJ2rTPtInXCFcCs59mUsl7TwI+LIRsD9C4+TIxOonsuqAUmS09f5kDteMJQdEVBcE4ebnI2qWzeJ3XgRVOAO/RpsffctDGZkfYaF0DaQlWp+XQcAFi6Ivoiu/urP3dlppa/5A9/mkBvr60urMHO8smLSSnFxUKElu8djU/D4HLw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018358080896.138629656316; Wed, 20 May 2020 16:45:58 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOv-0007yH-8N; Wed, 20 May 2020 23:45:29 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOu-0007y3-I1 for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:28 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f9098f8e-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:23 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E850620884; Wed, 20 May 2020 23:45:22 +0000 (UTC) X-Inumbo-ID: f9098f8e-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018323; bh=BdtSeWgXsb31UNe8YibrIGXB2m1r+NP2vHy9sK75VrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D4juGHuWLwXCUQ4BiyjK2os9avjDJbMjWHGYOfBv0bIT/y1SSkYFzmXf+J0FUlGmI uNxOlH4gYVmZy9fLvLCB6TRrezbkFec377Yz93CtKc+vcXA4qedTTTUz7DcXF6j/EL PaBHNJUauI8pORC7ruz8zCF/f70GVyBFHjifAemc= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 03/10] swiotlb-xen: add struct device* parameter to xen_phys_to_bus Date: Wed, 20 May 2020 16:45:13 -0700 Message-Id: <20200520234520.22563-3-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini The parameter is unused in this patch. No functional changes. Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index b5e0492b07b9..958ee5517e0b 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -57,7 +57,7 @@ static unsigned long xen_io_tlb_nslabs; * can be 32bit when dma_addr_t is 64bit leading to a loss in * information if the shift is done before casting to 64bit. */ -static inline dma_addr_t xen_phys_to_bus(phys_addr_t paddr) +static inline dma_addr_t xen_phys_to_bus(struct device *dev, phys_addr_t p= addr) { unsigned long bfn =3D pfn_to_bfn(XEN_PFN_DOWN(paddr)); dma_addr_t dma =3D (dma_addr_t)bfn << XEN_PAGE_SHIFT; @@ -78,9 +78,9 @@ static inline phys_addr_t xen_bus_to_phys(dma_addr_t badd= r) return paddr; } =20 -static inline dma_addr_t xen_virt_to_bus(void *address) +static inline dma_addr_t xen_virt_to_bus(struct device *dev, void *address) { - return xen_phys_to_bus(virt_to_phys(address)); + return xen_phys_to_bus(dev, virt_to_phys(address)); } =20 static inline int range_straddles_page_boundary(phys_addr_t p, size_t size) @@ -309,7 +309,7 @@ xen_swiotlb_alloc_coherent(struct device *hwdev, size_t= size, * Do not use virt_to_phys(ret) because on ARM it doesn't correspond * to *dma_handle. */ phys =3D *dma_handle; - dev_addr =3D xen_phys_to_bus(phys); + dev_addr =3D xen_phys_to_bus(hwdev, phys); if (((dev_addr + size - 1 <=3D dma_mask)) && !range_straddles_page_boundary(phys, size)) *dma_handle =3D dev_addr; @@ -367,7 +367,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device *d= ev, struct page *page, unsigned long attrs) { phys_addr_t map, phys =3D page_to_phys(page) + offset; - dma_addr_t dev_addr =3D xen_phys_to_bus(phys); + dma_addr_t dev_addr =3D xen_phys_to_bus(dev, phys); =20 BUG_ON(dir =3D=3D DMA_NONE); /* @@ -392,7 +392,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device *d= ev, struct page *page, return DMA_MAPPING_ERROR; =20 phys =3D map; - dev_addr =3D xen_phys_to_bus(map); + dev_addr =3D xen_phys_to_bus(dev, map); =20 /* * Ensure that the address returned is DMA'ble @@ -536,7 +536,7 @@ xen_swiotlb_sync_sg_for_device(struct device *dev, stru= ct scatterlist *sgl, static int xen_swiotlb_dma_supported(struct device *hwdev, u64 mask) { - return xen_virt_to_bus(xen_io_tlb_end - 1) <=3D mask; + return xen_virt_to_bus(hwdev, xen_io_tlb_end - 1) <=3D mask; } =20 const struct dma_map_ops xen_swiotlb_dma_ops =3D { --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018358; cv=none; d=zohomail.com; s=zohoarc; b=Wmaf+hyrB7TEQNafQxdFDf/Cqsn+JCLlI7i0d2/cHk4daYdJQ5Rs7fbhcpz6d1myo1tIGHHJOHrNTEZJebdaNyKiS139TwZIhkgU1c+0ducYG4hY6AbeqE4kxM9WMPYk9+nt8NQRqgBaD38dvpctuBlR+LK82ySsAhUkdAEXjU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018358; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=OzyI6G+q2TJou2G6O+Hx90kcuctojB3jybWcCVJjEjk=; b=I7CVDnKo6KflzDagNEHoN7fUmS8ucE8QUE+m5+hu3prRnFSbpMKbbPhxf1Ic0ncexECpdweJqVlaS+H1dzln3/ncmh8W0TknPIGNqpQxGV+tfUG5e6pDpU+C4XFXB2Roqe43bzLWrvIjNBzg+EvyzYc5yfGUJrdEbMfGGhzmhHA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018358528148.23881957756396; Wed, 20 May 2020 16:45:58 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP0-00080n-UB; Wed, 20 May 2020 23:45:34 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOz-00080C-IB for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:33 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f9473532-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:24 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 58CB720899; Wed, 20 May 2020 23:45:23 +0000 (UTC) X-Inumbo-ID: f9473532-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018323; bh=KOZVKoHc4nwdfLj2dJHT6a8axx8miTwmLiOrwBfDB1k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zrzyv7dwGOoZVOjzN/lI6uRiajVHs9Vwy9l2vAnumI9ByScLvTFwCz0GbKgQGL6mH nHTux0QWT9tRMSYP25Dz44CDAsqapcfHK1zzX6Jz+gOjOGZU9NJy7LnunoCzzI+fz8 hdxrCpqYM0hQY5MHAQFgGUEtfwix69+Jsu+d9KVs= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 04/10] swiotlb-xen: add struct device* parameter to xen_bus_to_phys Date: Wed, 20 May 2020 16:45:14 -0700 Message-Id: <20200520234520.22563-4-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini The parameter is unused in this patch. No functional changes. Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index 958ee5517e0b..9b4306a56feb 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -67,7 +67,7 @@ static inline dma_addr_t xen_phys_to_bus(struct device *d= ev, phys_addr_t paddr) return dma; } =20 -static inline phys_addr_t xen_bus_to_phys(dma_addr_t baddr) +static inline phys_addr_t xen_bus_to_phys(struct device *dev, dma_addr_t b= addr) { unsigned long xen_pfn =3D bfn_to_pfn(XEN_PFN_DOWN(baddr)); dma_addr_t dma =3D (dma_addr_t)xen_pfn << XEN_PAGE_SHIFT; @@ -339,7 +339,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t = size, void *vaddr, =20 /* do not use virt_to_phys because on ARM it doesn't return you the * physical address */ - phys =3D xen_bus_to_phys(dev_addr); + phys =3D xen_bus_to_phys(hwdev, dev_addr); =20 /* Convert the size to actually allocated. */ size =3D 1UL << (order + XEN_PAGE_SHIFT); @@ -420,7 +420,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device *d= ev, struct page *page, static void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_ad= dr, size_t size, enum dma_data_direction dir, unsigned long attrs) { - phys_addr_t paddr =3D xen_bus_to_phys(dev_addr); + phys_addr_t paddr =3D xen_bus_to_phys(hwdev, dev_addr); =20 BUG_ON(dir =3D=3D DMA_NONE); =20 @@ -436,7 +436,7 @@ static void xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr, size_t size, enum dma_data_direction dir) { - phys_addr_t paddr =3D xen_bus_to_phys(dma_addr); + phys_addr_t paddr =3D xen_bus_to_phys(dev, dma_addr); =20 if (!dev_is_dma_coherent(dev)) xen_dma_sync_for_cpu(dma_addr, paddr, size, dir); @@ -449,7 +449,7 @@ static void xen_swiotlb_sync_single_for_device(struct device *dev, dma_addr_t dma_addr, size_t size, enum dma_data_direction dir) { - phys_addr_t paddr =3D xen_bus_to_phys(dma_addr); + phys_addr_t paddr =3D xen_bus_to_phys(dev, dma_addr); =20 if (is_xen_swiotlb_buffer(dma_addr)) swiotlb_tbl_sync_single(dev, paddr, size, dir, SYNC_FOR_DEVICE); --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018363; cv=none; d=zohomail.com; s=zohoarc; b=DN8neqWhol5VWef5tGCO309ZsL4xB+0QW0ibxXE21iJ7qNezgqF09T4fkopYDn1lS2YwVkLc6MPDwk3QTb2cmgbgRI8x9/RcWbDcvVVotAJHtVs0r1pkNNaZbOTJjdu5ubaETur9Ek18NsD47Gb+UIn56MaDncugYfoDC8VoiEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018363; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=H8bZq1iTpDW3wUxLWaRgTcNG6KV8cjJatrQT622Z/Xg=; b=QSa1VYl7hCX6PTQzXq9hniZZ0J7zVySoA8u7SbM/gYblvxdteG7hZiOguqlx+0ZJ8O4W0d7+Lo8VnayseZJVvT3+/TGaVbwbCCEn9n+8TGKL+zYplwsNERiVrIm673UUB3NC4CgA9su9WLhsSi6AKE2WbJMjV51hEsegT0gi1SU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018363305567.4715183268551; Wed, 20 May 2020 16:46:03 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP5-00084D-FV; Wed, 20 May 2020 23:45:39 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP4-000830-II for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:38 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f990c1c0-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:24 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BBBC1208A7; Wed, 20 May 2020 23:45:23 +0000 (UTC) X-Inumbo-ID: f990c1c0-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018324; bh=z/oPKkIs7NsKHsXBE6reDZxADwxVNC/gQhCGPLiNSNk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2oXurw69UIZ3DM7uqS/KV3kmKOp8Qp47Zmwn2iXz8fUjXTUv6facvM2OBXrQxMwcv Nkp327Rz7XzXGLqJyesuWLPsCW/lNQZWMTpkPb/ip3gXO/vBlpjekfJspk7tfZGPiN RBi6Jz59yYEMA40jGdjvJ4BWqbtoLvc+3biQ3IHY= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 05/10] swiotlb-xen: add struct device* parameter to xen_dma_sync_for_cpu Date: Wed, 20 May 2020 16:45:15 -0700 Message-Id: <20200520234520.22563-5-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini The parameter is unused in this patch. No functional changes. Signed-off-by: Stefano Stabellini --- arch/arm/xen/mm.c | 5 +++-- drivers/xen/swiotlb-xen.c | 4 ++-- include/xen/swiotlb-xen.h | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index d40e9e5fc52b..1a00e8003c64 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c @@ -71,8 +71,9 @@ static void dma_cache_maint(dma_addr_t handle, size_t siz= e, u32 op) * pfn_valid returns true the pages is local and we can use the native * dma-direct functions, otherwise we call the Xen specific version. */ -void xen_dma_sync_for_cpu(dma_addr_t handle, phys_addr_t paddr, size_t siz= e, - enum dma_data_direction dir) +void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t handle, + phys_addr_t paddr, size_t size, + enum dma_data_direction dir) { if (pfn_valid(PFN_DOWN(handle))) arch_sync_dma_for_cpu(paddr, size, dir); diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index 9b4306a56feb..f9aa932973dd 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -425,7 +425,7 @@ static void xen_swiotlb_unmap_page(struct device *hwdev= , dma_addr_t dev_addr, BUG_ON(dir =3D=3D DMA_NONE); =20 if (!dev_is_dma_coherent(hwdev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) - xen_dma_sync_for_cpu(dev_addr, paddr, size, dir); + xen_dma_sync_for_cpu(hwdev, dev_addr, paddr, size, dir); =20 /* NOTE: We use dev_addr here, not paddr! */ if (is_xen_swiotlb_buffer(dev_addr)) @@ -439,7 +439,7 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma= _addr_t dma_addr, phys_addr_t paddr =3D xen_bus_to_phys(dev, dma_addr); =20 if (!dev_is_dma_coherent(dev)) - xen_dma_sync_for_cpu(dma_addr, paddr, size, dir); + xen_dma_sync_for_cpu(dev, dma_addr, paddr, size, dir); =20 if (is_xen_swiotlb_buffer(dma_addr)) swiotlb_tbl_sync_single(dev, paddr, size, dir, SYNC_FOR_CPU); diff --git a/include/xen/swiotlb-xen.h b/include/xen/swiotlb-xen.h index ffc0d3902b71..f62d1854780b 100644 --- a/include/xen/swiotlb-xen.h +++ b/include/xen/swiotlb-xen.h @@ -4,8 +4,9 @@ =20 #include =20 -void xen_dma_sync_for_cpu(dma_addr_t handle, phys_addr_t paddr, size_t siz= e, - enum dma_data_direction dir); +void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t handle, + phys_addr_t paddr, size_t size, + enum dma_data_direction dir); void xen_dma_sync_for_device(dma_addr_t handle, phys_addr_t paddr, size_t = size, enum dma_data_direction dir); =20 --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018357; cv=none; d=zohomail.com; s=zohoarc; b=nDU0/0Kntc/ySXuv76A+XQoXu1E/9WbOkH+1piTqqdYqPMMralMbtClJ/CqImYaIG01y5A7mBz8QtUBve99dBJYnggrZz7gskWrFlobSV3q6NYspbORqG8f6W63uznp3tsHsc167W/YgL4J7djfSZk36PNEtlE6WFp29EMSEUzo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018357; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=CVomCEPTBjT3NslkYfzJqGoboZvspzqD2Ek0LP58dXg=; b=j4khu3TP58uaNraskN0yhzDvXLxdACTdVelcQb/8mpccqfD+PrNWjE8vKLKdJSYn+mZ3bOsrnGGOP/DZomw0x4yQ1q0NW+G6eJ8IqRrZeUeigYRmiLX2NUAfkeAS6kVEYI5pcNyC9A/3tUKMGbglvKsM2FCI8FVgYmeimrVZq2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018357121661.781953558165; Wed, 20 May 2020 16:45:57 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOt-0007xb-0i; Wed, 20 May 2020 23:45:27 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOr-0007xF-BZ for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:25 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f9c78d2c-9af3-11ea-ae69-bc764e2007e4; Wed, 20 May 2020 23:45:25 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 30682208B3; Wed, 20 May 2020 23:45:24 +0000 (UTC) X-Inumbo-ID: f9c78d2c-9af3-11ea-ae69-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018324; bh=L20gKWj8zlek7VJV9PmfeUsnev8ccHkezeGqO5r/j0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pnTOgRAhyAKhhIqmhcyTNxvwKS7YZkziiXSq2B8Bf3L2jwD/2wcYZFCXYaLBTB/H3 a5SP8AwC6k1h40imuvELO7bRpU77mncT/fN5LRmTcW8ndOxsBdcFDJtcHDYQ+ee4yM Rw5m1CKwyl4TbFieBldPA5YNa+ZIT6x9HG5pDjsw= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 06/10] swiotlb-xen: add struct device* parameter to xen_dma_sync_for_device Date: Wed, 20 May 2020 16:45:16 -0700 Message-Id: <20200520234520.22563-6-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini The parameter is unused in this patch. No functional changes. Signed-off-by: Stefano Stabellini --- arch/arm/xen/mm.c | 5 +++-- drivers/xen/swiotlb-xen.c | 4 ++-- include/xen/swiotlb-xen.h | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index 1a00e8003c64..f2414ea40a79 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c @@ -81,8 +81,9 @@ void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t = handle, dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL); } =20 -void xen_dma_sync_for_device(dma_addr_t handle, phys_addr_t paddr, size_t = size, - enum dma_data_direction dir) +void xen_dma_sync_for_device(struct device *dev, dma_addr_t handle, + phys_addr_t paddr, size_t size, + enum dma_data_direction dir) { if (pfn_valid(PFN_DOWN(handle))) arch_sync_dma_for_device(paddr, size, dir); diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index f9aa932973dd..ef58f05ae445 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -405,7 +405,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device *d= ev, struct page *page, =20 done: if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) - xen_dma_sync_for_device(dev_addr, phys, size, dir); + xen_dma_sync_for_device(dev, dev_addr, phys, size, dir); return dev_addr; } =20 @@ -455,7 +455,7 @@ xen_swiotlb_sync_single_for_device(struct device *dev, = dma_addr_t dma_addr, swiotlb_tbl_sync_single(dev, paddr, size, dir, SYNC_FOR_DEVICE); =20 if (!dev_is_dma_coherent(dev)) - xen_dma_sync_for_device(dma_addr, paddr, size, dir); + xen_dma_sync_for_device(dev, dma_addr, paddr, size, dir); } =20 /* diff --git a/include/xen/swiotlb-xen.h b/include/xen/swiotlb-xen.h index f62d1854780b..6d235fe2b92d 100644 --- a/include/xen/swiotlb-xen.h +++ b/include/xen/swiotlb-xen.h @@ -7,8 +7,9 @@ void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t handle, phys_addr_t paddr, size_t size, enum dma_data_direction dir); -void xen_dma_sync_for_device(dma_addr_t handle, phys_addr_t paddr, size_t = size, - enum dma_data_direction dir); +void xen_dma_sync_for_device(struct device *dev, dma_addr_t handle, + phys_addr_t paddr, size_t size, + enum dma_data_direction dir); =20 extern int xen_swiotlb_init(int verbose, bool early); extern const struct dma_map_ops xen_swiotlb_dma_ops; --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018354; cv=none; d=zohomail.com; s=zohoarc; b=kQ1g74qfMAJWyAxgvRLdYVjQ0XWrH2t5txrfLERbzgHSu9Edch0DmSB8ijordDAmfEuLOtTJVsGeLfvrzAIwiwvOKGVs7qcW0H+bBjWytUsdF+RSuMFPRtyZjOIxb/rTSUjwMcj7PpFQeqzZIq3J3xocp9c+7ek0BKuv84/G7uI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018354; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=TJjkZ1CY9G3LuzG+2rVLZq7Eac3EKSyxvVmheb/wBlw=; b=IX5P+feJW2Bp5Lps263lZQ+9zLRvKAzFS97mAaTOWm1NdtoqNtZXgaNZdTUfmTyozr38p7Qo60W1UKecmYzQOYi1oZS/AEy8/AiLRn4ode32aa3NpjX9YbBl97tGqb5PcOdBIwSzaX5nsnwizi3KsYFUo+5ssl1gtLkWRmZfoOQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018354789738.4461106820372; Wed, 20 May 2020 16:45:54 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOx-0007zF-HQ; Wed, 20 May 2020 23:45:31 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYOw-0007yu-AZ for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:30 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id fa02ce0a-9af3-11ea-b9cf-bc764e2007e4; Wed, 20 May 2020 23:45:25 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 98AEA208B8; Wed, 20 May 2020 23:45:24 +0000 (UTC) X-Inumbo-ID: fa02ce0a-9af3-11ea-b9cf-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018324; bh=68bz29KGiO4K1vLdUXFPavN9cfZPRxxaUFsbZLLeOQI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dTE+kbnCMNQDzzVwFHnyCGj6ceXloekheSqEc/mfi4uXHnNX9YcX6KNuk+7Xjfu1e 4Ivslg+Y9YsbA3JPm/E/DYimCIufADyo/rByZJDKZvlNR4WU+bwFRttIiSiZLilf48 QwBlp0h7JbG+8wQ41SDtLC7LELN2RoJXH8oONqRI= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 07/10] swiotlb-xen: add struct device* parameter to is_xen_swiotlb_buffer Date: Wed, 20 May 2020 16:45:17 -0700 Message-Id: <20200520234520.22563-7-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini The parameter is unused in this patch. No functional changes. Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index ef58f05ae445..c50448fd9b75 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -97,7 +97,7 @@ static inline int range_straddles_page_boundary(phys_addr= _t p, size_t size) return 0; } =20 -static int is_xen_swiotlb_buffer(dma_addr_t dma_addr) +static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr) { unsigned long bfn =3D XEN_PFN_DOWN(dma_addr); unsigned long xen_pfn =3D bfn_to_local_pfn(bfn); @@ -428,7 +428,7 @@ static void xen_swiotlb_unmap_page(struct device *hwdev= , dma_addr_t dev_addr, xen_dma_sync_for_cpu(hwdev, dev_addr, paddr, size, dir); =20 /* NOTE: We use dev_addr here, not paddr! */ - if (is_xen_swiotlb_buffer(dev_addr)) + if (is_xen_swiotlb_buffer(hwdev, dev_addr)) swiotlb_tbl_unmap_single(hwdev, paddr, size, size, dir, attrs); } =20 @@ -441,7 +441,7 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma= _addr_t dma_addr, if (!dev_is_dma_coherent(dev)) xen_dma_sync_for_cpu(dev, dma_addr, paddr, size, dir); =20 - if (is_xen_swiotlb_buffer(dma_addr)) + if (is_xen_swiotlb_buffer(dev, dma_addr)) swiotlb_tbl_sync_single(dev, paddr, size, dir, SYNC_FOR_CPU); } =20 @@ -451,7 +451,7 @@ xen_swiotlb_sync_single_for_device(struct device *dev, = dma_addr_t dma_addr, { phys_addr_t paddr =3D xen_bus_to_phys(dev, dma_addr); =20 - if (is_xen_swiotlb_buffer(dma_addr)) + if (is_xen_swiotlb_buffer(dev, dma_addr)) swiotlb_tbl_sync_single(dev, paddr, size, dir, SYNC_FOR_DEVICE); =20 if (!dev_is_dma_coherent(dev)) --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018368; cv=none; d=zohomail.com; s=zohoarc; b=kcAKlEpJUuuZcgrIWSTcKSrzChLuL3DENk9OSnkjIzdLihFnn3vJH9ncOZgPQ8dIDZbd4/DzkyFGtWga4kpshHsnkKa3dQZAs3furd0z6+tbJB3zceq2VEBiBRtDqqFv3F38OKoMAVv3cmlA6cusnzJy+RmiZ0vCylLMWLpM0gI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018368; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=aMjy0zcS79+Nh7xBOe/QigV4XwrVVCvfyhkIxvwPQMk=; b=hbnQoeBNSOxAC4lGJtY2C621lqSQXTPRJQp4/dEcdldX+jNwcRdO9P2yjz0lUXcmF5F19A8wsD5krFTTrPRp8OUSkJ/a+7DBE7obRkup4FJF/V+4VH6Br6Ona9JEhBX+ktyeGPEZY7sZUEAd9zDXOwjd6ZIkI8+hZKBZuAUABPw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018368248489.3655638854334; Wed, 20 May 2020 16:46:08 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYPB-00087u-32; Wed, 20 May 2020 23:45:45 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP9-00086q-IS for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:43 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id fa47af7a-9af3-11ea-aaaa-12813bfff9fa; Wed, 20 May 2020 23:45:25 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 03272208C3; Wed, 20 May 2020 23:45:24 +0000 (UTC) X-Inumbo-ID: fa47af7a-9af3-11ea-aaaa-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018325; bh=8Uhi52nEHwr6p4oqjgGMPqzF2apk7Bwz25uN3GRP/Fc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b6e4YPjm7TkI1oOgr3Xo8IZYxje2EhZjUfcZ0kyxxDR0eWcOFPNzbEZDKqFtqYTP6 DGJnyCco3P66kvXMuzlfjJ1at3ARO6GSJ/ORWX3M1W6ehKfPZs8ie/RZbRghJ5Ik+Z 2zbX0cvTPa4xUg5gXkRmvnBpQPnqfYdnsqAzFQBo= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 08/10] swiotlb-xen: introduce phys_to_dma/dma_to_phys translations Date: Wed, 20 May 2020 16:45:18 -0700 Message-Id: <20200520234520.22563-8-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini Call dma_to_phys in is_xen_swiotlb_buffer. Call phys_to_dma in xen_phys_to_bus. Call dma_to_phys in xen_bus_to_phys. Everything is taken care of by these changes except for xen_swiotlb_alloc_coherent and xen_swiotlb_free_coherent, which need a few explicit phys_to_dma/dma_to_phys calls. Signed-off-by: Stefano Stabellini --- drivers/xen/swiotlb-xen.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index c50448fd9b75..d011c4c7aa72 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -64,14 +64,16 @@ static inline dma_addr_t xen_phys_to_bus(struct device = *dev, phys_addr_t paddr) =20 dma |=3D paddr & ~XEN_PAGE_MASK; =20 - return dma; + return phys_to_dma(dev, dma); } =20 -static inline phys_addr_t xen_bus_to_phys(struct device *dev, dma_addr_t b= addr) +static inline phys_addr_t xen_bus_to_phys(struct device *dev, + dma_addr_t dma_addr) { + phys_addr_t baddr =3D dma_to_phys(dev, dma_addr); unsigned long xen_pfn =3D bfn_to_pfn(XEN_PFN_DOWN(baddr)); - dma_addr_t dma =3D (dma_addr_t)xen_pfn << XEN_PAGE_SHIFT; - phys_addr_t paddr =3D dma; + phys_addr_t paddr =3D (xen_pfn << XEN_PAGE_SHIFT) | + (baddr & ~XEN_PAGE_MASK); =20 paddr |=3D baddr & ~XEN_PAGE_MASK; =20 @@ -99,7 +101,7 @@ static inline int range_straddles_page_boundary(phys_add= r_t p, size_t size) =20 static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr) { - unsigned long bfn =3D XEN_PFN_DOWN(dma_addr); + unsigned long bfn =3D XEN_PFN_DOWN(dma_to_phys(dev, dma_addr)); unsigned long xen_pfn =3D bfn_to_local_pfn(bfn); phys_addr_t paddr =3D XEN_PFN_PHYS(xen_pfn); =20 @@ -304,11 +306,11 @@ xen_swiotlb_alloc_coherent(struct device *hwdev, size= _t size, if (hwdev && hwdev->coherent_dma_mask) dma_mask =3D hwdev->coherent_dma_mask; =20 - /* At this point dma_handle is the physical address, next we are + /* At this point dma_handle is the dma address, next we are * going to set it to the machine address. * Do not use virt_to_phys(ret) because on ARM it doesn't correspond * to *dma_handle. */ - phys =3D *dma_handle; + phys =3D dma_to_phys(hwdev, *dma_handle); dev_addr =3D xen_phys_to_bus(hwdev, phys); if (((dev_addr + size - 1 <=3D dma_mask)) && !range_straddles_page_boundary(phys, size)) @@ -319,6 +321,7 @@ xen_swiotlb_alloc_coherent(struct device *hwdev, size_t= size, xen_free_coherent_pages(hwdev, size, ret, (dma_addr_t)phys, attrs); return NULL; } + *dma_handle =3D phys_to_dma(hwdev, *dma_handle); SetPageXenRemapped(virt_to_page(ret)); } memset(ret, 0, size); @@ -351,7 +354,8 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t = size, void *vaddr, TestClearPageXenRemapped(pg)) xen_destroy_contiguous_region(phys, order); =20 - xen_free_coherent_pages(hwdev, size, vaddr, (dma_addr_t)phys, attrs); + xen_free_coherent_pages(hwdev, size, vaddr, phys_to_dma(hwdev, phys), + attrs); } =20 /* --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018363; cv=none; d=zohomail.com; s=zohoarc; b=CceMiFuAJfwDdaxvJl6kcKyA+SM5DJPweLszliSXNDHxMReslja0AcYbZEGo/h2Es6AoPz+3L4gMi6/0AdXc69Kd5mC2vHgPFlaR4jiwB/Xg3t/Dx0Ncfgu/J6OyXaSgwJnSm+fjRRa7Zg5UU9ZxPwAv0lXHmxKFhkN719qNUKI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018363; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=UhBXJggdj3/g94ZT6puraFy1t0BSllkWD8cyArPZGAk=; b=Ase+ZFxu/UZ3EdpZHFRxz9UHor78Dtg6JJsWnu8kMnFzz6hliOTFdVf5n/1LITjILrhhC58D2HGL+MN4b0VrbU5myOWxQJ9QvgGkspEUqEaAqr1Rx7cQsfmAR8gZbtVUGWcAU2ESpi9/RBLSf9obaNBWHNbs3ESMpchjdOl7OGI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 159001836318670.97251201883535; Wed, 20 May 2020 16:46:03 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP3-000827-6a; Wed, 20 May 2020 23:45:37 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP1-00080z-9T for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:35 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id fa845f88-9af3-11ea-b07b-bc764e2007e4; Wed, 20 May 2020 23:45:26 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6EE5920B80; Wed, 20 May 2020 23:45:25 +0000 (UTC) X-Inumbo-ID: fa845f88-9af3-11ea-b07b-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018325; bh=zOggHTvrAHnGnYxgbdj7YkRZVsHE+BJZQ+7OWADQwYE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JVwAtmtAzOWjanAHNYSDwz0EACLtThGIDZ+uUg3zRvGSkZ75zhEpQJU3GzzON3sTQ a4K7Q8VcswpaFBNTBAKJzXJgfqEM28xLxpmJbB7BCuTDWgYrzJXzFN48YVh7WrmbLS h39JcTbntVeLgiFMkXpexgwcaiT0drFuU4zHbALQ= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 09/10] xen/arm: introduce phys/dma translations in xen_dma_sync_for_* Date: Wed, 20 May 2020 16:45:19 -0700 Message-Id: <20200520234520.22563-9-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini Add phys_to_dma/dma_to_phys calls to xen_dma_sync_for_cpu, xen_dma_sync_for_device, and xen_arch_need_swiotlb. In xen_arch_need_swiotlb, take the opportunity to switch to the simpler pfn_valid check we use everywhere else. dma_cache_maint is fixed by the next patch. Signed-off-by: Stefano Stabellini --- arch/arm/xen/mm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index f2414ea40a79..7639251bcc79 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only #include +#include #include #include #include @@ -75,7 +76,7 @@ void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t = handle, phys_addr_t paddr, size_t size, enum dma_data_direction dir) { - if (pfn_valid(PFN_DOWN(handle))) + if (pfn_valid(PFN_DOWN(dma_to_phys(dev, handle)))) arch_sync_dma_for_cpu(paddr, size, dir); else if (dir !=3D DMA_TO_DEVICE) dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL); @@ -85,7 +86,7 @@ void xen_dma_sync_for_device(struct device *dev, dma_addr= _t handle, phys_addr_t paddr, size_t size, enum dma_data_direction dir) { - if (pfn_valid(PFN_DOWN(handle))) + if (pfn_valid(PFN_DOWN(dma_to_phys(dev, handle)))) arch_sync_dma_for_device(paddr, size, dir); else if (dir =3D=3D DMA_FROM_DEVICE) dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL); @@ -97,8 +98,7 @@ bool xen_arch_need_swiotlb(struct device *dev, phys_addr_t phys, dma_addr_t dev_addr) { - unsigned int xen_pfn =3D XEN_PFN_DOWN(phys); - unsigned int bfn =3D XEN_PFN_DOWN(dev_addr); + unsigned int bfn =3D XEN_PFN_DOWN(dma_to_phys(dev, dev_addr)); =20 /* * The swiotlb buffer should be used if @@ -115,7 +115,7 @@ bool xen_arch_need_swiotlb(struct device *dev, * require a bounce buffer because the device doesn't support coherent * memory and we are not able to flush the cache. */ - return (!hypercall_cflush && (xen_pfn !=3D bfn) && + return (!hypercall_cflush && !pfn_valid(bfn) && !dev_is_dma_coherent(dev)); } =20 --=20 2.17.1 From nobody Thu Apr 18 20:32:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1590018365; cv=none; d=zohomail.com; s=zohoarc; b=OKjqYRI2q1eGaJp5iddGWoh36JrwMgB8kjpUHCjULBpg9maBNOmkBgzUgOpxuZcl8oLfqLDdYxDtRwdWsys90Vq/Bj9ya5BOPLU08ihLxXuVSVLqdVJq9reKfZjit3tb+qk61RzQW4iEIkYyW5h0k22ggHj6BO9WmrnkdfG9bFY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590018365; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=k4Iai76517lNz0TSux7SGiVmScF9cE0bhvZMFv0ECIE=; b=N9Ti/ahQNfWXjhCf9Q87C7XZPh3ErMqEgM570NDH4JcTbl4sn6fQ/OyQYEiEeTzlcOFwngKieJQRuxRSxRM8Q3hE1d4aGXlUzLkYBOGY3uGtdiUMOBamtJaedrWY2zRf+w8+30QeceSMsDlmiZd9N58Yro0WfMBJOQAkNZ6F6iI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590018365347570.0830741525772; Wed, 20 May 2020 16:46:05 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP7-00085v-Pf; Wed, 20 May 2020 23:45:41 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jbYP6-00084m-Av for xen-devel@lists.xenproject.org; Wed, 20 May 2020 23:45:40 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id fac52810-9af3-11ea-9887-bc764e2007e4; Wed, 20 May 2020 23:45:26 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D156F208C7; Wed, 20 May 2020 23:45:25 +0000 (UTC) X-Inumbo-ID: fac52810-9af3-11ea-9887-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590018326; bh=K/T4h2BFa+NcoPT654ciuMnQsexCfqtyhB6cVtjK0L4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iO1sa0jxbGms6doP+1SAsu8gCvwCCG2FLgnZDuwrFexC103KNiw38nDll+VHU43s2 Nh2TpH2F36+9fsLjiS6cJyqFf9ZymsSVC2VoFK1SHz/99E0SURKQRXWu+SOnutOCzF s0HqcEICwCpORe7VX79MIUVoZtX9bZ86p6lqngIo= From: Stefano Stabellini To: jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: [PATCH 10/10] xen/arm: call dma_to_phys on the dma_addr_t parameter of dma_cache_maint Date: Wed, 20 May 2020 16:45:20 -0700 Message-Id: <20200520234520.22563-10-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, linux-kernel@vger.kernel.org, Stefano Stabellini Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Stefano Stabellini Add a struct device* parameter to dma_cache_maint. Translate the dma_addr_t parameter of dma_cache_maint by calling dma_to_phys. Do it for the first page and all the following pages, in case of multipage handling. Signed-off-by: Stefano Stabellini --- arch/arm/xen/mm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index 7639251bcc79..6ddf3b3c1ab5 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c @@ -43,15 +43,18 @@ unsigned long xen_get_swiotlb_free_pages(unsigned int o= rder) static bool hypercall_cflush =3D false; =20 /* buffers in highmem or foreign pages cannot cross page boundaries */ -static void dma_cache_maint(dma_addr_t handle, size_t size, u32 op) +static void dma_cache_maint(struct device *dev, dma_addr_t handle, + size_t size, u32 op) { struct gnttab_cache_flush cflush; =20 - cflush.a.dev_bus_addr =3D handle & XEN_PAGE_MASK; cflush.offset =3D xen_offset_in_page(handle); cflush.op =3D op; + handle &=3D XEN_PAGE_MASK; =20 do { + cflush.a.dev_bus_addr =3D dma_to_phys(dev, handle); + if (size + cflush.offset > XEN_PAGE_SIZE) cflush.length =3D XEN_PAGE_SIZE - cflush.offset; else @@ -60,7 +63,7 @@ static void dma_cache_maint(dma_addr_t handle, size_t siz= e, u32 op) HYPERVISOR_grant_table_op(GNTTABOP_cache_flush, &cflush, 1); =20 cflush.offset =3D 0; - cflush.a.dev_bus_addr +=3D cflush.length; + handle +=3D cflush.length; size -=3D cflush.length; } while (size); } @@ -79,7 +82,7 @@ void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t = handle, if (pfn_valid(PFN_DOWN(dma_to_phys(dev, handle)))) arch_sync_dma_for_cpu(paddr, size, dir); else if (dir !=3D DMA_TO_DEVICE) - dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL); + dma_cache_maint(dev, handle, size, GNTTAB_CACHE_INVAL); } =20 void xen_dma_sync_for_device(struct device *dev, dma_addr_t handle, @@ -89,9 +92,9 @@ void xen_dma_sync_for_device(struct device *dev, dma_addr= _t handle, if (pfn_valid(PFN_DOWN(dma_to_phys(dev, handle)))) arch_sync_dma_for_device(paddr, size, dir); else if (dir =3D=3D DMA_FROM_DEVICE) - dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL); + dma_cache_maint(dev, handle, size, GNTTAB_CACHE_INVAL); else - dma_cache_maint(handle, size, GNTTAB_CACHE_CLEAN); + dma_cache_maint(dev, handle, size, GNTTAB_CACHE_CLEAN); } =20 bool xen_arch_need_swiotlb(struct device *dev, --=20 2.17.1