iommu.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Osipenko <digetx@gmail.com>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: devel@driverdev.osuosl.org,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	David Airlie <airlied@linux.ie>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Jonathan Hunter <jonathanh@nvidia.com>,
	linaro-mm-sig@lists.linaro.org, iommu@lists.linux-foundation.org,
	Thierry Reding <thierry.reding@gmail.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	linux-tegra@vger.kernel.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH v7 31/36] staging: tegra-vde: fix common struct sg_table related issues
Date: Sun, 21 Jun 2020 07:00:15 +0300	[thread overview]
Message-ID: <20200621070015.0cf833ab@dimatab> (raw)
In-Reply-To: <20200619103636.11974-32-m.szyprowski@samsung.com>

В Fri, 19 Jun 2020 12:36:31 +0200
Marek Szyprowski <m.szyprowski@samsung.com> пишет:

> The Documentation/DMA-API-HOWTO.txt states that the dma_map_sg()
> function returns the number of the created entries in the DMA address
> space. However the subsequent calls to the
> dma_sync_sg_for_{device,cpu}() and dma_unmap_sg must be called with
> the original number of the entries passed to the dma_map_sg().
> 
> struct sg_table is a common structure used for describing a
> non-contiguous memory buffer, used commonly in the DRM and graphics
> subsystems. It consists of a scatterlist with memory pages and DMA
> addresses (sgl entry), as well as the number of scatterlist entries:
> CPU pages (orig_nents entry) and DMA mapped pages (nents entry).
> 
> It turned out that it was a common mistake to misuse nents and
> orig_nents entries, calling DMA-mapping functions with a wrong number
> of entries or ignoring the number of mapped entries returned by the
> dma_map_sg() function.
> 
> To avoid such issues, lets use a common dma-mapping wrappers operating
> directly on the struct sg_table objects and use scatterlist page
> iterators where possible. This, almost always, hides references to the
> nents and orig_nents entries, making the code robust, easier to follow
> and copy/paste safe.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/staging/media/tegra-vde/iommu.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/media/tegra-vde/iommu.c
> b/drivers/staging/media/tegra-vde/iommu.c index
> 6af863d92123..adf8dc7ee25c 100644 ---
> a/drivers/staging/media/tegra-vde/iommu.c +++
> b/drivers/staging/media/tegra-vde/iommu.c @@ -36,8 +36,8 @@ int
> tegra_vde_iommu_map(struct tegra_vde *vde, 
>  	addr = iova_dma_addr(&vde->iova, iova);
>  
> -	size = iommu_map_sg(vde->domain, addr, sgt->sgl, sgt->nents,
> -			    IOMMU_READ | IOMMU_WRITE);
> +	size = iommu_map_sgtable(vde->domain, addr, sgt,
> +				 IOMMU_READ | IOMMU_WRITE);
>  	if (!size) {
>  		__free_iova(&vde->iova, iova);
>  		return -ENXIO;

Ahh, I saw the build failure report. You're changing the DMA API in
this series, while DMA API isn't used by this driver, it uses IOMMU
API. Hence there is no need to touch this code. Similar problem in the
host1x driver patch.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  parent reply	other threads:[~2020-06-21  4:00 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200619103652eucas1p203d684adff0faa672ff5c8d383b52f23@eucas1p2.samsung.com>
2020-06-19 10:36 ` [PATCH v7 00/36] DRM: fix struct sg_table nents vs. orig_nents misuse Marek Szyprowski
     [not found]   ` <CGME20200619103653eucas1p2542a7f42db61b22a43919666368dbbfa@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 01/36] drm: prime: add common helper to check scatterlist contiguity Marek Szyprowski
2020-07-07 14:30       ` Andrzej Hajda
2020-07-07 15:03         ` Andrzej Hajda
     [not found]   ` <CGME20200619103654eucas1p227a1d6926d008ef21ba4e0b68a8de210@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 02/36] drm: prime: use sgtable iterators in drm_prime_sg_to_page_addr_arrays() Marek Szyprowski
2020-07-07 14:41       ` Andrzej Hajda
     [not found]   ` <CGME20200619103655eucas1p1b01cbe67526e2b2f8254eb20ccac1858@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 03/36] drm: core: fix common struct sg_table related issues Marek Szyprowski
2020-07-07 15:02       ` Andrzej Hajda
     [not found]   ` <CGME20200619103655eucas1p28ea4bf59428550217c8962666d6f077b@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 04/36] drm: amdgpu: " Marek Szyprowski
2020-06-22 13:27       ` Christian König
2020-07-07 13:06         ` Marek Szyprowski
     [not found]   ` <CGME20200619103656eucas1p262a08b701244745a547a0c38f26f83af@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 05/36] drm: armada: " Marek Szyprowski
     [not found]   ` <CGME20200619103657eucas1p2b7cec8f7b477c9574e2594ad6644a780@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 06/36] drm: etnaviv: " Marek Szyprowski
     [not found]   ` <CGME20200619103657eucas1p24bff92408adbd4715130fb47595a6187@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 07/36] drm: exynos: use common helper for a scatterlist contiguity check Marek Szyprowski
2020-07-07  9:35       ` Andrzej Hajda
2020-07-07 15:04         ` Andrzej Hajda
2020-07-14  0:28       ` Inki Dae
     [not found]   ` <CGME20200619103658eucas1p1c3236e2de2798c2d8c02279a9263e9a9@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 08/36] drm: exynos: fix common struct sg_table related issues Marek Szyprowski
2020-07-07  9:40       ` Andrzej Hajda
2020-07-07 15:05         ` Andrzej Hajda
2020-07-14  0:27       ` Inki Dae
     [not found]   ` <CGME20200619103659eucas1p27ece9865ea4cdd82d4ca4df06edef7e6@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 09/36] drm: i915: " Marek Szyprowski
     [not found]   ` <CGME20200619103659eucas1p15d57f701ea85df16e953bfd5098423f6@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 10/36] drm: lima: " Marek Szyprowski
     [not found]   ` <CGME20200619103700eucas1p13747c6a4d1a89f3cfc94a585ada9be4b@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 11/36] drm: mediatek: use common helper for a scatterlist contiguity check Marek Szyprowski
     [not found]   ` <CGME20200619103701eucas1p2323797b812f4d8c28e851aa80938a8dc@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 12/36] drm: mediatek: use common helper for extracting pages array Marek Szyprowski
     [not found]   ` <CGME20200619103702eucas1p1c57147013bbac3968f6ba073caec68b5@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 13/36] drm: msm: fix common struct sg_table related issues Marek Szyprowski
2020-06-19 14:45       ` Rob Clark
     [not found]   ` <CGME20200619103702eucas1p207b9cacc7460a334a0eda58c2b60a965@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 14/36] drm: omapdrm: use common helper for extracting pages array Marek Szyprowski
     [not found]   ` <CGME20200619103703eucas1p14faa1cec371efb0bf98ae696d58da64d@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 15/36] drm: omapdrm: fix common struct sg_table related issues Marek Szyprowski
     [not found]   ` <CGME20200619103703eucas1p2b8b0e90f9559c3fff12d61f76b861cc1@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 16/36] drm: panfrost: " Marek Szyprowski
     [not found]   ` <CGME20200619103704eucas1p1bf233e8914507323499186d9ab742c09@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 17/36] drm: radeon: " Marek Szyprowski
     [not found]   ` <CGME20200619103705eucas1p2d81a91b989d5aed5c7da6897173905cd@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 18/36] drm: rockchip: use common helper for a scatterlist contiguity check Marek Szyprowski
     [not found]   ` <CGME20200619103706eucas1p24f226bc00559f0812bc44d7933acd1e4@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 19/36] drm: rockchip: fix common struct sg_table related issues Marek Szyprowski
     [not found]   ` <CGME20200619103706eucas1p2b9a9926941e812db1111ec46a97695cd@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 20/36] drm: tegra: " Marek Szyprowski
     [not found]   ` <CGME20200619103707eucas1p1cdb34a10d5657bdd62fdf51fb7bf0146@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 21/36] drm: v3d: " Marek Szyprowski
     [not found]   ` <CGME20200619103708eucas1p2207ebc9373b820797675b91060a2a597@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 22/36] drm: virtio: " Marek Szyprowski
     [not found]   ` <CGME20200619103708eucas1p230ca99e915e759bc0e93cd844c91b311@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 23/36] drm: vmwgfx: " Marek Szyprowski
     [not found]   ` <CGME20200619103709eucas1p12c32fa6377caf78e5dc28ce0ff51e7a0@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 24/36] drm: xen: " Marek Szyprowski
     [not found]   ` <CGME20200619103710eucas1p1873c8ebb37e6717a5864c31d10b50efd@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 25/36] xen: gntdev: " Marek Szyprowski
     [not found]   ` <CGME20200619103710eucas1p1160d521b10c9afdb8e447e261072bfd4@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 26/36] drm: host1x: " Marek Szyprowski
2020-06-21 14:47       ` kernel test robot
     [not found]   ` <CGME20200619103711eucas1p188e07cb9aaad13d39238aac4fe84b10c@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 27/36] drm: rcar-du: " Marek Szyprowski
     [not found]   ` <CGME20200619103712eucas1p1a29d1fe41061ed5b138a9cdd5d811419@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 28/36] dmabuf: " Marek Szyprowski
     [not found]   ` <CGME20200619103713eucas1p2f4b6b66a376a72d1bf62ea6d92572045@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 29/36] staging: ion: remove dead code Marek Szyprowski
     [not found]   ` <CGME20200619103714eucas1p2bfc6c1d97d7913ad5988e3aaef8cc5ff@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 30/36] staging: ion: fix common struct sg_table related issues Marek Szyprowski
     [not found]   ` <CGME20200619103714eucas1p18db6efd1a380fc0bdb16174ee85036fa@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 31/36] staging: tegra-vde: " Marek Szyprowski
2020-06-20 21:10       ` kernel test robot
2020-06-21  4:00       ` Dmitry Osipenko [this message]
2020-06-30 10:07         ` Marek Szyprowski
2020-07-01  1:45           ` Dmitry Osipenko
     [not found]   ` <CGME20200619103715eucas1p12d01355499fbecb8632472b1b8230e6f@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 32/36] misc: fastrpc: " Marek Szyprowski
     [not found]   ` <CGME20200619103716eucas1p1b7c50f7b421fb29829050b9355e3e644@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 33/36] rapidio: " Marek Szyprowski
2020-06-21  1:23       ` kernel test robot
2020-06-23 15:46       ` [kbuild] " Dan Carpenter
     [not found]       ` <CGME20200630084445eucas1p1e85857b5d046648578f1447f8ba521a5@eucas1p1.samsung.com>
2020-06-30  8:44         ` [PATCH v8] " Marek Szyprowski
     [not found]   ` <CGME20200619103716eucas1p28d6da172346acf044d3c1f213d9543ef@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 34/36] samples: vfio-mdev/mbochs: " Marek Szyprowski
     [not found]   ` <CGME20200619103717eucas1p23b82366794c92cc70c0492e4ca29c4a1@eucas1p2.samsung.com>
2020-06-19 10:36     ` [PATCH v7 35/36] media: pci: fix common ALSA DMA-mapping related codes Marek Szyprowski
     [not found]   ` <CGME20200619103718eucas1p11cd577b435672197f48bfcba2d06bc18@eucas1p1.samsung.com>
2020-06-19 10:36     ` [PATCH v7 36/36] videobuf2: use sgtable-based scatterlist wrappers Marek Szyprowski
     [not found]       ` <CGME20200630104527eucas1p13f19c24ff053556fb1fa7dc72be14c77@eucas1p1.samsung.com>
2020-06-30 10:45         ` [PATCH v8] " Marek Szyprowski
2020-06-30  8:49   ` [PATCH v7 00/36] DRM: fix struct sg_table nents vs. orig_nents misuse Marek Szyprowski

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=20200621070015.0cf833ab@dimatab \
    --to=digetx@gmail.com \
    --cc=airlied@linux.ie \
    --cc=b.zolnierkie@samsung.com \
    --cc=daniel@ffwll.ch \
    --cc=devel@driverdev.osuosl.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=thierry.reding@gmail.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).