Message ID | 20190826121944.515-5-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [01/11] xen/arm: use dma-noncoherent.h calls for xen-swiotlb cache maintainance | expand |
On Mon, 26 Aug 2019, Christoph Hellwig wrote: > arm and arm64 can just use xen_swiotlb_dma_ops directly like x86, no > need for a pointer indirection. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Julien Grall <julien.grall@arm.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > arch/arm/mm/dma-mapping.c | 3 ++- > arch/arm/xen/mm.c | 4 ---- > arch/arm64/mm/dma-mapping.c | 3 ++- > include/xen/arm/hypervisor.h | 2 -- > 4 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c > index 738097396445..2661cad36359 100644 > --- a/arch/arm/mm/dma-mapping.c > +++ b/arch/arm/mm/dma-mapping.c > @@ -35,6 +35,7 @@ > #include <asm/mach/map.h> > #include <asm/system_info.h> > #include <asm/dma-contiguous.h> > +#include <xen/swiotlb-xen.h> > > #include "dma.h" > #include "mm.h" > @@ -2360,7 +2361,7 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, > > #ifdef CONFIG_XEN > if (xen_initial_domain()) > - dev->dma_ops = xen_dma_ops; > + dev->dma_ops = &xen_swiotlb_dma_ops; > #endif > dev->archdata.dma_ops_setup = true; > } > diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c > index 14210ebdea1a..9b3a6c0ca681 100644 > --- a/arch/arm/xen/mm.c > +++ b/arch/arm/xen/mm.c > @@ -163,16 +163,12 @@ void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order) > } > EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region); > > -const struct dma_map_ops *xen_dma_ops; > -EXPORT_SYMBOL(xen_dma_ops); > - > int __init xen_mm_init(void) > { > struct gnttab_cache_flush cflush; > if (!xen_initial_domain()) > return 0; > xen_swiotlb_init(1, false); > - xen_dma_ops = &xen_swiotlb_dma_ops; > > cflush.op = 0; > cflush.a.dev_bus_addr = 0; > diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c > index bd2b039f43a6..4b244a037349 100644 > --- a/arch/arm64/mm/dma-mapping.c > +++ b/arch/arm64/mm/dma-mapping.c > @@ -8,6 +8,7 @@ > #include <linux/cache.h> > #include <linux/dma-noncoherent.h> > #include <linux/dma-iommu.h> > +#include <xen/swiotlb-xen.h> > > #include <asm/cacheflush.h> > > @@ -64,6 +65,6 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, > > #ifdef CONFIG_XEN > if (xen_initial_domain()) > - dev->dma_ops = xen_dma_ops; > + dev->dma_ops = &xen_swiotlb_dma_ops; > #endif > } > diff --git a/include/xen/arm/hypervisor.h b/include/xen/arm/hypervisor.h > index 2982571f7cc1..43ef24dd030e 100644 > --- a/include/xen/arm/hypervisor.h > +++ b/include/xen/arm/hypervisor.h > @@ -19,8 +19,6 @@ static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void) > return PARAVIRT_LAZY_NONE; > } > > -extern const struct dma_map_ops *xen_dma_ops; > - > #ifdef CONFIG_XEN > void __init xen_early_init(void); > #else > -- > 2.20.1 >
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 738097396445..2661cad36359 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -35,6 +35,7 @@ #include <asm/mach/map.h> #include <asm/system_info.h> #include <asm/dma-contiguous.h> +#include <xen/swiotlb-xen.h> #include "dma.h" #include "mm.h" @@ -2360,7 +2361,7 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, #ifdef CONFIG_XEN if (xen_initial_domain()) - dev->dma_ops = xen_dma_ops; + dev->dma_ops = &xen_swiotlb_dma_ops; #endif dev->archdata.dma_ops_setup = true; } diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index 14210ebdea1a..9b3a6c0ca681 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c @@ -163,16 +163,12 @@ void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order) } EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region); -const struct dma_map_ops *xen_dma_ops; -EXPORT_SYMBOL(xen_dma_ops); - int __init xen_mm_init(void) { struct gnttab_cache_flush cflush; if (!xen_initial_domain()) return 0; xen_swiotlb_init(1, false); - xen_dma_ops = &xen_swiotlb_dma_ops; cflush.op = 0; cflush.a.dev_bus_addr = 0; diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c index bd2b039f43a6..4b244a037349 100644 --- a/arch/arm64/mm/dma-mapping.c +++ b/arch/arm64/mm/dma-mapping.c @@ -8,6 +8,7 @@ #include <linux/cache.h> #include <linux/dma-noncoherent.h> #include <linux/dma-iommu.h> +#include <xen/swiotlb-xen.h> #include <asm/cacheflush.h> @@ -64,6 +65,6 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, #ifdef CONFIG_XEN if (xen_initial_domain()) - dev->dma_ops = xen_dma_ops; + dev->dma_ops = &xen_swiotlb_dma_ops; #endif } diff --git a/include/xen/arm/hypervisor.h b/include/xen/arm/hypervisor.h index 2982571f7cc1..43ef24dd030e 100644 --- a/include/xen/arm/hypervisor.h +++ b/include/xen/arm/hypervisor.h @@ -19,8 +19,6 @@ static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void) return PARAVIRT_LAZY_NONE; } -extern const struct dma_map_ops *xen_dma_ops; - #ifdef CONFIG_XEN void __init xen_early_init(void); #else