From: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> To: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org> Cc: linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org, catalin.marinas-5wv7dgnIgG8@public.gmane.org, will.deacon-5wv7dgnIgG8@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Subject: Re: [RFC PATCH 3/5] iommu: implement common IOMMU ops for DMA mapping Date: Tue, 27 Jan 2015 01:21:16 +0100 [thread overview] Message-ID: <20150127002116.GI30345@8bytes.org> (raw) In-Reply-To: <09e5515a9afcb3235f4c425520cd18a6032d31b4.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org> Hi Robin, thanks for the patch, I think it is good start to move forward. See my comments below. On Mon, Jan 12, 2015 at 08:48:55PM +0000, Robin Murphy wrote: > Taking inspiration from the existing arch/arm code, break out some > generic functions to interface the DMA-API to the IOMMU-API. This will > do the bulk of the heavy lifting for IOMMU-backed dma-mapping. > > Whilst the target is arm64, rather than introduce yet another private > implementation, place this in common code as the first step towards > consolidating the numerous versions spread around between architecture > code and IOMMU drivers. Is there any reason you implemented that only for AArch64? I think it makes a lot of sense to have a common implementation of that across architectures (AArch64, ARM and X86). > > Signed-off-by: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org> > --- > include/linux/dma-iommu.h | 78 ++++++++ > lib/Kconfig | 8 + > lib/Makefile | 1 + > lib/dma-iommu.c | 455 ++++++++++++++++++++++++++++++++++++++++++++++ I'd like this to live in drivers/iommu, as most other dma-api implementations for iommu-drivers also live there. > +/* > + * This little guy is filling in until iommu_map_sg lands and we can hook that > + * up instead (which is going to be rather involved thanks to page alignment) > + */ iommu_map_sg should be there now. You can convert this function to it. > +static int __iommu_dma_map_sg_simple(struct device *dev, struct scatterlist *sg, > + int nents, enum dma_data_direction dir, struct dma_attrs *attrs, > + bool coherent) > +{ > + struct scatterlist *s; > + int i; > + > + for_each_sg(sg, s, nents, i) { > + sg_dma_address(s) = __iommu_dma_map_page(dev, sg_page(s), s->offset, > + s->length, dir, coherent); > + sg_dma_len(s) = s->length; > + } > + return nents; > +} So long, Joerg
WARNING: multiple messages have this Message-ID (diff)
From: joro@8bytes.org (Joerg Roedel) To: linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 3/5] iommu: implement common IOMMU ops for DMA mapping Date: Tue, 27 Jan 2015 01:21:16 +0100 [thread overview] Message-ID: <20150127002116.GI30345@8bytes.org> (raw) In-Reply-To: <09e5515a9afcb3235f4c425520cd18a6032d31b4.1421086706.git.robin.murphy@arm.com> Hi Robin, thanks for the patch, I think it is good start to move forward. See my comments below. On Mon, Jan 12, 2015 at 08:48:55PM +0000, Robin Murphy wrote: > Taking inspiration from the existing arch/arm code, break out some > generic functions to interface the DMA-API to the IOMMU-API. This will > do the bulk of the heavy lifting for IOMMU-backed dma-mapping. > > Whilst the target is arm64, rather than introduce yet another private > implementation, place this in common code as the first step towards > consolidating the numerous versions spread around between architecture > code and IOMMU drivers. Is there any reason you implemented that only for AArch64? I think it makes a lot of sense to have a common implementation of that across architectures (AArch64, ARM and X86). > > Signed-off-by: Robin Murphy <robin.murphy@arm.com> > --- > include/linux/dma-iommu.h | 78 ++++++++ > lib/Kconfig | 8 + > lib/Makefile | 1 + > lib/dma-iommu.c | 455 ++++++++++++++++++++++++++++++++++++++++++++++ I'd like this to live in drivers/iommu, as most other dma-api implementations for iommu-drivers also live there. > +/* > + * This little guy is filling in until iommu_map_sg lands and we can hook that > + * up instead (which is going to be rather involved thanks to page alignment) > + */ iommu_map_sg should be there now. You can convert this function to it. > +static int __iommu_dma_map_sg_simple(struct device *dev, struct scatterlist *sg, > + int nents, enum dma_data_direction dir, struct dma_attrs *attrs, > + bool coherent) > +{ > + struct scatterlist *s; > + int i; > + > + for_each_sg(sg, s, nents, i) { > + sg_dma_address(s) = __iommu_dma_map_page(dev, sg_page(s), s->offset, > + s->length, dir, coherent); > + sg_dma_len(s) = s->length; > + } > + return nents; > +} So long, Joerg
next prev parent reply other threads:[~2015-01-27 0:21 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-01-12 20:48 [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Robin Murphy 2015-01-12 20:48 ` Robin Murphy 2015-01-13 8:02 ` Yingjoe Chen 2015-01-13 8:02 ` Yingjoe Chen 2015-01-13 12:07 ` Robin Murphy 2015-01-13 12:07 ` Robin Murphy 2015-01-15 18:35 ` Robin Murphy 2015-01-15 18:35 ` Robin Murphy 2015-01-16 7:21 ` Yong Wu 2015-01-16 7:21 ` Yong Wu 2015-01-16 20:12 ` Robin Murphy 2015-01-16 20:12 ` Robin Murphy [not found] ` <cover.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org> 2015-01-12 20:48 ` [RFC PATCH 1/5] arm64: Combine coherent and non-coherent swiotlb dma_ops Robin Murphy 2015-01-12 20:48 ` Robin Murphy 2015-01-12 20:48 ` [RFC PATCH 2/5] arm64: implement generic IOMMU configuration Robin Murphy 2015-01-12 20:48 ` Robin Murphy 2015-01-12 20:48 ` [RFC PATCH 3/5] iommu: implement common IOMMU ops for DMA mapping Robin Murphy 2015-01-12 20:48 ` Robin Murphy [not found] ` <09e5515a9afcb3235f4c425520cd18a6032d31b4.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org> 2015-01-23 17:42 ` Laura Abbott 2015-01-23 17:42 ` Laura Abbott [not found] ` <54C287F7.3060603-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2015-01-23 18:14 ` Robin Murphy 2015-01-23 18:14 ` Robin Murphy 2015-01-27 0:21 ` Joerg Roedel [this message] 2015-01-27 0:21 ` Joerg Roedel [not found] ` <20150127002116.GI30345-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> 2015-01-27 12:27 ` Robin Murphy 2015-01-27 12:27 ` Robin Murphy [not found] ` <54C7843B.3000605-5wv7dgnIgG8@public.gmane.org> 2015-01-27 12:38 ` Joerg Roedel 2015-01-27 12:38 ` Joerg Roedel [not found] ` <20150127123809.GJ30345-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> 2015-01-28 13:53 ` Will Deacon 2015-01-28 13:53 ` Will Deacon 2015-01-12 20:48 ` [RFC PATCH 4/5] arm64: add IOMMU dma_ops Robin Murphy 2015-01-12 20:48 ` Robin Murphy [not found] ` <aa7de3b1dd189c31eb8b14d0c0eea699183f8a2c.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org> 2015-01-23 15:26 ` Will Deacon 2015-01-23 15:26 ` Will Deacon [not found] ` <20150123152605.GA31460-5wv7dgnIgG8@public.gmane.org> 2015-01-23 17:33 ` Robin Murphy 2015-01-23 17:33 ` Robin Murphy 2015-01-26 3:25 ` Joseph Lo 2015-01-26 3:25 ` Joseph Lo [not found] ` <54C5B3B9.1040300-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2015-01-27 17:30 ` Robin Murphy 2015-01-27 17:30 ` Robin Murphy 2015-01-26 9:10 ` Joseph Lo 2015-01-26 9:10 ` Joseph Lo 2015-01-28 2:22 ` Joseph Lo 2015-01-28 2:22 ` Joseph Lo 2015-03-05 14:31 ` Marek Szyprowski 2015-03-05 14:31 ` Marek Szyprowski 2015-01-12 20:48 ` [RFC PATCH 5/5] arm64: hook up " Robin Murphy 2015-01-12 20:48 ` Robin Murphy 2015-01-13 11:08 ` [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Stefano Stabellini 2015-01-13 11:08 ` Stefano Stabellini [not found] ` <alpine.DEB.2.02.1501131102540.3058-7Z66fg9igcxYtxbxJUhB2Dgeux46jI+i@public.gmane.org> 2015-01-13 11:45 ` Robin Murphy 2015-01-13 11:45 ` Robin Murphy 2015-01-23 16:47 ` Catalin Marinas 2015-01-23 16:47 ` Catalin Marinas [not found] ` <20150123164759.GF9557-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org> 2015-01-23 17:41 ` Robin Murphy 2015-01-23 17:41 ` Robin Murphy 2015-03-05 14:31 ` Marek Szyprowski 2015-03-05 14:31 ` Marek Szyprowski [not found] ` <54F868A8.7070103-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 2015-03-05 16:42 ` Robin Murphy 2015-03-05 16:42 ` Robin Murphy
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=20150127002116.GI30345@8bytes.org \ --to=joro-zlv9swrftaidnm+yrofe0a@public.gmane.org \ --cc=arnd-r2nGTMty4D4@public.gmane.org \ --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \ --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \ --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \ --cc=robin.murphy-5wv7dgnIgG8@public.gmane.org \ --cc=stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org \ --cc=thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \ --cc=will.deacon-5wv7dgnIgG8@public.gmane.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.