From: Roman Skakun <rm.skakun@gmail.com> To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Roman Skakun <rm.skakun@gmail.com>, Roman Skakun <roman_skakun@epam.com> Subject: [PATCH 1/2] Revert "swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable" Date: Wed, 16 Jun 2021 14:42:04 +0300 [thread overview] Message-ID: <20210616114205.38902-1-roman_skakun@epam.com> (raw) In-Reply-To: <855a58e2-1e03-4763-cb56-81367b73762c@oracle.com> This reverts commit 922659ea771b3fd728149262c5ea15608fab9719. Signed-off-by: Roman Skakun <roman_skakun@epam.com> --- drivers/xen/swiotlb-xen.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index 2b385c1b4a99..90bc5fc321bc 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -563,6 +563,31 @@ xen_swiotlb_dma_supported(struct device *hwdev, u64 mask) return xen_virt_to_bus(hwdev, xen_io_tlb_end - 1) <= mask; } +/* + * Create userspace mapping for the DMA-coherent memory. + * This function should be called with the pages from the current domain only, + * passing pages mapped from other domains would lead to memory corruption. + */ +static int +xen_swiotlb_dma_mmap(struct device *dev, struct vm_area_struct *vma, + void *cpu_addr, dma_addr_t dma_addr, size_t size, + unsigned long attrs) +{ + return dma_common_mmap(dev, vma, cpu_addr, dma_addr, size, attrs); +} + +/* + * This function should be called with the pages from the current domain only, + * passing pages mapped from other domains would lead to memory corruption. + */ +static int +xen_swiotlb_get_sgtable(struct device *dev, struct sg_table *sgt, + void *cpu_addr, dma_addr_t handle, size_t size, + unsigned long attrs) +{ + return dma_common_get_sgtable(dev, sgt, cpu_addr, handle, size, attrs); +} + const struct dma_map_ops xen_swiotlb_dma_ops = { .alloc = xen_swiotlb_alloc_coherent, .free = xen_swiotlb_free_coherent, @@ -575,8 +600,8 @@ const struct dma_map_ops xen_swiotlb_dma_ops = { .map_page = xen_swiotlb_map_page, .unmap_page = xen_swiotlb_unmap_page, .dma_supported = xen_swiotlb_dma_supported, - .mmap = dma_common_mmap, - .get_sgtable = dma_common_get_sgtable, + .mmap = xen_swiotlb_dma_mmap, + .get_sgtable = xen_swiotlb_get_sgtable, .alloc_pages = dma_common_alloc_pages, .free_pages = dma_common_free_pages, }; -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Roman Skakun <rm.skakun@gmail.com> To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Roman Skakun <roman_skakun@epam.com>, Roman Skakun <rm.skakun@gmail.com>, Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Subject: [PATCH 1/2] Revert "swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable" Date: Wed, 16 Jun 2021 14:42:04 +0300 [thread overview] Message-ID: <20210616114205.38902-1-roman_skakun@epam.com> (raw) In-Reply-To: <855a58e2-1e03-4763-cb56-81367b73762c@oracle.com> This reverts commit 922659ea771b3fd728149262c5ea15608fab9719. Signed-off-by: Roman Skakun <roman_skakun@epam.com> --- drivers/xen/swiotlb-xen.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index 2b385c1b4a99..90bc5fc321bc 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -563,6 +563,31 @@ xen_swiotlb_dma_supported(struct device *hwdev, u64 mask) return xen_virt_to_bus(hwdev, xen_io_tlb_end - 1) <= mask; } +/* + * Create userspace mapping for the DMA-coherent memory. + * This function should be called with the pages from the current domain only, + * passing pages mapped from other domains would lead to memory corruption. + */ +static int +xen_swiotlb_dma_mmap(struct device *dev, struct vm_area_struct *vma, + void *cpu_addr, dma_addr_t dma_addr, size_t size, + unsigned long attrs) +{ + return dma_common_mmap(dev, vma, cpu_addr, dma_addr, size, attrs); +} + +/* + * This function should be called with the pages from the current domain only, + * passing pages mapped from other domains would lead to memory corruption. + */ +static int +xen_swiotlb_get_sgtable(struct device *dev, struct sg_table *sgt, + void *cpu_addr, dma_addr_t handle, size_t size, + unsigned long attrs) +{ + return dma_common_get_sgtable(dev, sgt, cpu_addr, handle, size, attrs); +} + const struct dma_map_ops xen_swiotlb_dma_ops = { .alloc = xen_swiotlb_alloc_coherent, .free = xen_swiotlb_free_coherent, @@ -575,8 +600,8 @@ const struct dma_map_ops xen_swiotlb_dma_ops = { .map_page = xen_swiotlb_map_page, .unmap_page = xen_swiotlb_unmap_page, .dma_supported = xen_swiotlb_dma_supported, - .mmap = dma_common_mmap, - .get_sgtable = dma_common_get_sgtable, + .mmap = xen_swiotlb_dma_mmap, + .get_sgtable = xen_swiotlb_get_sgtable, .alloc_pages = dma_common_alloc_pages, .free_pages = dma_common_free_pages, }; -- 2.25.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2021-06-16 11:43 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-11 9:55 [PATCH] swiotlb-xen: override common mmap and get_sgtable dma ops Roman Skakun 2021-06-11 9:55 ` Roman Skakun 2021-06-11 15:19 ` Boris Ostrovsky 2021-06-11 15:19 ` Boris Ostrovsky 2021-06-14 12:47 ` Roman Skakun 2021-06-14 12:47 ` Roman Skakun 2021-06-14 12:47 ` Roman Skakun 2021-06-14 15:45 ` Boris Ostrovsky 2021-06-14 15:45 ` Boris Ostrovsky 2021-06-16 11:45 ` Roman Skakun 2021-06-16 11:45 ` Roman Skakun 2021-06-16 11:45 ` Roman Skakun 2021-06-16 11:42 ` Roman Skakun [this message] 2021-06-16 11:42 ` [PATCH 1/2] Revert "swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable" Roman Skakun 2021-06-16 11:42 ` [PATCH 2/2] swiotlb-xen: override common mmap and get_sgtable dma ops Roman Skakun 2021-06-16 11:42 ` Roman Skakun 2021-06-16 14:12 ` Boris Ostrovsky 2021-06-16 14:12 ` Boris Ostrovsky 2021-06-16 14:21 ` Christoph Hellwig 2021-06-16 14:21 ` Christoph Hellwig 2021-06-16 15:33 ` Boris Ostrovsky 2021-06-16 15:33 ` Boris Ostrovsky 2021-06-16 15:35 ` Christoph Hellwig 2021-06-16 15:35 ` Christoph Hellwig 2021-06-16 15:39 ` Boris Ostrovsky 2021-06-16 15:39 ` Boris Ostrovsky 2021-06-16 15:44 ` Christoph Hellwig 2021-06-16 15:44 ` Christoph Hellwig 2021-06-22 13:34 ` [PATCH v2] dma-mapping: use vmalloc_to_page for vmalloc addresses Roman Skakun 2021-06-22 13:34 ` Roman Skakun 2021-07-14 0:15 ` Konrad Rzeszutek Wilk 2021-07-14 0:15 ` Konrad Rzeszutek Wilk 2021-07-15 7:39 ` Roman Skakun 2021-07-15 7:39 ` Roman Skakun 2021-07-15 7:39 ` Roman Skakun 2021-07-15 16:58 ` Boris Ostrovsky 2021-07-15 16:58 ` Boris Ostrovsky 2021-07-15 17:00 ` Christoph Hellwig 2021-07-15 17:00 ` Christoph Hellwig 2021-07-16 8:39 ` Roman Skakun 2021-07-16 8:39 ` Roman Skakun 2021-07-16 9:35 ` Christoph Hellwig 2021-07-16 9:35 ` Christoph Hellwig 2021-07-16 12:53 ` Roman Skakun 2021-07-16 12:53 ` Roman Skakun 2021-07-16 12:53 ` Roman Skakun 2021-07-16 15:29 ` Stefano Stabellini 2021-07-16 15:29 ` Stefano Stabellini 2021-07-16 15:29 ` Stefano Stabellini 2021-07-17 8:39 ` Roman Skakun 2021-07-17 8:39 ` Roman Skakun 2021-07-17 8:39 ` Roman Skakun 2021-07-19 9:22 ` Christoph Hellwig 2021-07-19 9:22 ` Christoph Hellwig 2021-07-21 18:39 ` Roman Skakun 2021-07-21 18:39 ` Roman Skakun 2021-07-21 18:39 ` Roman Skakun 2021-07-14 1:23 ` Stefano Stabellini 2021-07-14 1:23 ` Stefano Stabellini 2021-07-14 1:23 ` Stefano Stabellini 2021-07-15 7:31 ` Roman Skakun 2021-07-15 7:31 ` Roman Skakun 2021-07-15 7:31 ` Roman Skakun
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210616114205.38902-1-roman_skakun@epam.com \ --to=rm.skakun@gmail.com \ --cc=boris.ostrovsky@oracle.com \ --cc=iommu@lists.linux-foundation.org \ --cc=jgross@suse.com \ --cc=konrad.wilk@oracle.com \ --cc=linux-kernel@vger.kernel.org \ --cc=oleksandr_andrushchenko@epam.com \ --cc=oleksandr_tyshchenko@epam.com \ --cc=roman_skakun@epam.com \ --cc=sstabellini@kernel.org \ --cc=volodymyr_babchuk@epam.com \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.