From: Christoph Hellwig <hch@lst.de> To: iommu@lists.linux-foundation.org, Linus Torvalds <torvalds@linux-foundation.org>, Jesper Dangaard Brouer <brouer@redhat.com> Cc: "Tariq Toukan" <tariqt@mellanox.com>, "Ilias Apalodimas" <ilias.apalodimas@linaro.org>, "Toke Høiland-Jørgensen" <toke@toke.dk>, "Robin Murphy" <robin.murphy@arm.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "Tony Luck" <tony.luck@intel.com>, "Fenghua Yu" <fenghua.yu@intel.com>, "Marek Szyprowski" <m.szyprowski@samsung.com>, "Keith Busch" <keith.busch@intel.com>, "Jonathan Derrick" <jonathan.derrick@intel.com>, linux-pci@vger.kernel.org, linux-ia64@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/15] dma-mapping: move dma_cache_sync out of line Date: Fri, 7 Dec 2018 11:07:15 -0800 [thread overview] Message-ID: <20181207190720.18517-11-hch@lst.de> (raw) In-Reply-To: <20181207190720.18517-1-hch@lst.de> This isn't exactly a slow path routine, but it is not super critical either, and moving it out of line will help to keep the include chain clean for the following DMA indirection bypass work. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/linux/dma-mapping.h | 12 ++---------- kernel/dma/mapping.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 0bbce52606c2..0f0078490df4 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -411,16 +411,8 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, #define dma_map_page(d, p, o, s, r) dma_map_page_attrs(d, p, o, s, r, 0) #define dma_unmap_page(d, a, s, r) dma_unmap_page_attrs(d, a, s, r, 0) -static inline void -dma_cache_sync(struct device *dev, void *vaddr, size_t size, - enum dma_data_direction dir) -{ - const struct dma_map_ops *ops = get_dma_ops(dev); - - BUG_ON(!valid_dma_direction(dir)); - if (ops->cache_sync) - ops->cache_sync(dev, vaddr, size, dir); -} +void dma_cache_sync(struct device *dev, void *vaddr, size_t size, + enum dma_data_direction dir); extern int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c index 176ae3e08916..0b18cfbdde95 100644 --- a/kernel/dma/mapping.c +++ b/kernel/dma/mapping.c @@ -430,3 +430,14 @@ int dma_set_coherent_mask(struct device *dev, u64 mask) } EXPORT_SYMBOL(dma_set_coherent_mask); #endif + +void dma_cache_sync(struct device *dev, void *vaddr, size_t size, + enum dma_data_direction dir) +{ + const struct dma_map_ops *ops = get_dma_ops(dev); + + BUG_ON(!valid_dma_direction(dir)); + if (ops->cache_sync) + ops->cache_sync(dev, vaddr, size, dir); +} +EXPORT_SYMBOL(dma_cache_sync); -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de> To: iommu@lists.linux-foundation.org, Linus Torvalds <torvalds@linux-foundation.org>, Jesper Dangaard Brouer <brouer@redhat.com> Cc: "Tariq Toukan" <tariqt@mellanox.com>, "Ilias Apalodimas" <ilias.apalodimas@linaro.org>, "Toke Høiland-Jørgensen" <toke@toke.dk>, "Robin Murphy" <robin.murphy@arm.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "Tony Luck" <tony.luck@intel.com>, "Fenghua Yu" <fenghua.yu@intel.com>, "Marek Szyprowski" <m.szyprowski@samsung.com>, "Keith Busch" <keith.busch@intel.com>, "Jonathan Derrick" <jonathan.derrick@intel.com>, linux-pci@vger.kernel.org, linux-ia64@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/15] dma-mapping: move dma_cache_sync out of line Date: Fri, 07 Dec 2018 19:07:15 +0000 [thread overview] Message-ID: <20181207190720.18517-11-hch@lst.de> (raw) In-Reply-To: <20181207190720.18517-1-hch@lst.de> This isn't exactly a slow path routine, but it is not super critical either, and moving it out of line will help to keep the include chain clean for the following DMA indirection bypass work. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/linux/dma-mapping.h | 12 ++---------- kernel/dma/mapping.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 0bbce52606c2..0f0078490df4 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -411,16 +411,8 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, #define dma_map_page(d, p, o, s, r) dma_map_page_attrs(d, p, o, s, r, 0) #define dma_unmap_page(d, a, s, r) dma_unmap_page_attrs(d, a, s, r, 0) -static inline void -dma_cache_sync(struct device *dev, void *vaddr, size_t size, - enum dma_data_direction dir) -{ - const struct dma_map_ops *ops = get_dma_ops(dev); - - BUG_ON(!valid_dma_direction(dir)); - if (ops->cache_sync) - ops->cache_sync(dev, vaddr, size, dir); -} +void dma_cache_sync(struct device *dev, void *vaddr, size_t size, + enum dma_data_direction dir); extern int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c index 176ae3e08916..0b18cfbdde95 100644 --- a/kernel/dma/mapping.c +++ b/kernel/dma/mapping.c @@ -430,3 +430,14 @@ int dma_set_coherent_mask(struct device *dev, u64 mask) } EXPORT_SYMBOL(dma_set_coherent_mask); #endif + +void dma_cache_sync(struct device *dev, void *vaddr, size_t size, + enum dma_data_direction dir) +{ + const struct dma_map_ops *ops = get_dma_ops(dev); + + BUG_ON(!valid_dma_direction(dir)); + if (ops->cache_sync) + ops->cache_sync(dev, vaddr, size, dir); +} +EXPORT_SYMBOL(dma_cache_sync); -- 2.19.1
next prev parent reply other threads:[~2018-12-07 19:08 UTC|newest] Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-07 19:07 [RFC] avoid indirect calls for DMA direct mappings v2 Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 01/15] swiotlb: remove SWIOTLB_MAP_ERROR Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 02/15] swiotlb: remove dma_mark_clean Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2019-01-02 21:53 ` Tony Luck 2019-01-02 21:53 ` Tony Luck 2019-01-03 7:23 ` Christoph Hellwig 2019-01-03 7:23 ` Christoph Hellwig 2019-01-03 7:23 ` Christoph Hellwig 2019-01-03 17:35 ` Tony Luck 2019-01-03 17:35 ` Tony Luck 2019-01-03 17:35 ` Tony Luck 2019-01-04 8:09 ` Christoph Hellwig 2019-01-04 8:09 ` Christoph Hellwig 2019-01-04 8:09 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 03/15] dma-direct: improve addressability error reporting Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 04/15] dma-direct: use dma_direct_map_page to implement dma_direct_map_sg Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 05/15] dma-direct: merge swiotlb_dma_ops into the dma_direct code Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 06/15] dma-mapping: simplify the dma_sync_single_range_for_{cpu,device} implementation Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 06/15] dma-mapping: simplify the dma_sync_single_range_for_{cpu, device} implementation Christoph Hellwig 2018-12-07 19:07 ` [PATCH 07/15] dma-mapping: merge dma_unmap_page_attrs and dma_unmap_single_attrs Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 08/15] dma-mapping: move dma_get_required_mask to kernel/dma Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 09/15] dma-mapping: move various slow path functions out of line Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig [this message] 2018-12-07 19:07 ` [PATCH 10/15] dma-mapping: move dma_cache_sync " Christoph Hellwig 2018-12-07 19:07 ` [PATCH 11/15] dma-mapping: always build the direct mapping code Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 12/15] dma-mapping: factor out dummy DMA ops Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-07 19:07 ` [PATCH 13/15] ACPI / scan: Refactor _CCA enforcement Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-14 21:15 ` Bjorn Helgaas 2018-12-14 21:15 ` Bjorn Helgaas 2018-12-07 19:07 ` [PATCH 14/15] vmd: use the proper dma_* APIs instead of direct methods calls Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-14 21:17 ` Bjorn Helgaas 2018-12-14 21:17 ` Bjorn Helgaas 2018-12-14 21:34 ` Derrick, Jonathan 2018-12-14 21:34 ` Derrick, Jonathan 2018-12-07 19:07 ` [PATCH 15/15] dma-mapping: bypass indirect calls for dma-direct Christoph Hellwig 2018-12-07 19:07 ` Christoph Hellwig 2018-12-14 14:11 ` Marek Szyprowski 2018-12-14 14:11 ` Marek Szyprowski 2018-12-14 14:24 ` Christoph Hellwig 2018-12-14 14:24 ` Christoph Hellwig 2018-12-14 14:32 ` Marek Szyprowski 2018-12-14 14:32 ` Marek Szyprowski 2018-12-15 17:46 ` [15/15] " Guenter Roeck 2018-12-15 17:46 ` Guenter Roeck 2018-12-16 9:02 ` Christoph Hellwig 2018-12-16 9:02 ` Christoph Hellwig 2018-12-16 9:02 ` Christoph Hellwig 2018-12-18 20:34 ` Guillaume Tucker 2018-12-18 20:34 ` Guillaume Tucker 2018-12-18 20:34 ` Guillaume Tucker 2018-12-18 20:34 ` Guillaume Tucker 2018-12-18 20:42 ` Robin Murphy 2018-12-18 20:42 ` Robin Murphy 2018-12-18 20:42 ` Robin Murphy 2018-12-19 6:42 ` Christoph Hellwig 2018-12-19 6:42 ` Christoph Hellwig 2018-12-19 6:42 ` Christoph Hellwig 2018-12-19 6:42 ` Christoph Hellwig 2018-12-20 16:44 ` [PATCH 15/15] " Thierry Reding 2018-12-20 16:44 ` Thierry Reding 2018-12-20 16:46 ` Christoph Hellwig 2018-12-20 16:46 ` Christoph Hellwig 2018-12-08 16:06 ` [RFC] avoid indirect calls for DMA direct mappings v2 Jesper Dangaard Brouer 2018-12-08 16:06 ` Jesper Dangaard Brouer 2018-12-08 16:50 ` Christoph Hellwig 2018-12-08 16:50 ` Christoph Hellwig 2018-12-10 21:51 ` Luck, Tony 2018-12-10 21:51 ` Luck, Tony 2018-12-11 6:51 ` Christoph Hellwig 2018-12-11 6:51 ` Christoph Hellwig 2018-12-11 16:42 ` Luck, Tony 2018-12-11 16:42 ` Luck, Tony 2018-12-11 17:13 ` Luck, Tony 2018-12-11 17:13 ` Luck, Tony 2018-12-11 17:15 ` Christoph Hellwig 2018-12-11 17:15 ` Christoph Hellwig 2018-12-11 17:15 ` Christoph Hellwig 2018-12-13 20:08 ` Christoph Hellwig 2018-12-13 20:08 ` Christoph Hellwig
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=20181207190720.18517-11-hch@lst.de \ --to=hch@lst.de \ --cc=brouer@redhat.com \ --cc=fenghua.yu@intel.com \ --cc=ilias.apalodimas@linaro.org \ --cc=iommu@lists.linux-foundation.org \ --cc=jonathan.derrick@intel.com \ --cc=keith.busch@intel.com \ --cc=konrad.wilk@oracle.com \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=m.szyprowski@samsung.com \ --cc=robin.murphy@arm.com \ --cc=tariqt@mellanox.com \ --cc=toke@toke.dk \ --cc=tony.luck@intel.com \ --cc=torvalds@linux-foundation.org \ --cc=x86@kernel.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.