#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"
 
 #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;
 }
 
 }
 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;
 
 #include <linux/cache.h>
 #include <linux/dma-noncoherent.h>
 #include <linux/dma-iommu.h>
+#include <xen/swiotlb-xen.h>
 
 #include <asm/cacheflush.h>
 
 
 #ifdef CONFIG_XEN
        if (xen_initial_domain())
-               dev->dma_ops = xen_dma_ops;
+               dev->dma_ops = &xen_swiotlb_dma_ops;
 #endif
 }
 
        return PARAVIRT_LAZY_NONE;
 }
 
-extern const struct dma_map_ops *xen_dma_ops;
-
 #ifdef CONFIG_XEN
 void __init xen_early_init(void);
 #else