OSDN Git Service

sh: simplify get_arch_dma_ops
authorChristoph Hellwig <hch@lst.de>
Mon, 16 Apr 2018 15:26:38 +0000 (17:26 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 2 Aug 2018 11:54:01 +0000 (13:54 +0200)
Remove the indirection through the dma_ops variable, and just return
nommu_dma_ops directly from get_arch_dma_ops.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Yoshinori Sato <ysato@users.sourceforge.jp>
arch/sh/include/asm/dma-mapping.h
arch/sh/kernel/dma-nommu.c
arch/sh/mm/consistent.c
arch/sh/mm/init.c

index 4116793..149e71f 100644 (file)
@@ -2,12 +2,11 @@
 #ifndef __ASM_SH_DMA_MAPPING_H
 #define __ASM_SH_DMA_MAPPING_H
 
-extern const struct dma_map_ops *dma_ops;
-extern void no_iommu_init(void);
+extern const struct dma_map_ops nommu_dma_ops;
 
 static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
 {
-       return dma_ops;
+       return &nommu_dma_ops;
 }
 
 extern void *dma_generic_alloc_coherent(struct device *dev, size_t size,
index 3e3a32f..79a9eda 100644 (file)
@@ -79,10 +79,4 @@ const struct dma_map_ops nommu_dma_ops = {
        .sync_sg_for_device     = nommu_sync_sg_for_device,
 #endif
 };
-
-void __init no_iommu_init(void)
-{
-       if (dma_ops)
-               return;
-       dma_ops = &nommu_dma_ops;
-}
+EXPORT_SYMBOL(nommu_dma_ops);
index fceb2ad..e9d422b 100644 (file)
@@ -20,9 +20,6 @@
 #include <asm/cacheflush.h>
 #include <asm/addrspace.h>
 
-const struct dma_map_ops *dma_ops;
-EXPORT_SYMBOL(dma_ops);
-
 void *dma_generic_alloc_coherent(struct device *dev, size_t size,
                                 dma_addr_t *dma_handle, gfp_t gfp,
                                 unsigned long attrs)
index 4034035..7713c08 100644 (file)
@@ -339,22 +339,12 @@ void __init paging_init(void)
        free_area_init_nodes(max_zone_pfns);
 }
 
-/*
- * Early initialization for any I/O MMUs we might have.
- */
-static void __init iommu_init(void)
-{
-       no_iommu_init();
-}
-
 unsigned int mem_init_done = 0;
 
 void __init mem_init(void)
 {
        pg_data_t *pgdat;
 
-       iommu_init();
-
        high_memory = NULL;
        for_each_online_pgdat(pgdat)
                high_memory = max_t(void *, high_memory,