--- /dev/null
+From arnd@arndb.de Wed Oct 4 16:35:39 2017
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Wed, 4 Oct 2017 15:51:29 +0200
+Subject: fix xen_swiotlb_dma_mmap prototype
+To: gregkh@linuxfoundation.org
+Cc: stable@vger.kernel.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>, xen-devel@lists.xenproject.org, jgross@suse.com, krzk@kernel.org, Arnd Bergmann <arnd@arndb.de>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, David Vrabel <david.vrabel@citrix.com>, Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Andrii Anisov <andrii_anisov@epam.com>, Oleksandr Dmytryshyn <oleksandr.dmytryshyn@globallogic.com>, linux-kernel@vger.kernel.org
+Message-ID: <20171004135140.3720000-1-arnd@arndb.de>
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+xen_swiotlb_dma_mmap was backported from v4.10, but older
+kernels before commit 00085f1efa38 ("dma-mapping: use unsigned long
+for dma_attrs") use a different signature:
+
+arm/xen/mm.c:202:10: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
+ .mmap = xen_swiotlb_dma_mmap,
+ ^~~~~~~~~~~~~~~~~~~~
+arm/xen/mm.c:202:10: note: (near initialization for 'xen_swiotlb_dma_ops.mmap')
+
+This adapts the patch to the old calling conventions.
+
+Fixes: "swiotlb-xen: implement xen_swiotlb_dma_mmap callback"
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/xen/swiotlb-xen.c | 2 +-
+ include/xen/swiotlb-xen.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/xen/swiotlb-xen.c
++++ b/drivers/xen/swiotlb-xen.c
+@@ -689,7 +689,7 @@ EXPORT_SYMBOL_GPL(xen_swiotlb_set_dma_ma
+ int
+ xen_swiotlb_dma_mmap(struct device *dev, struct vm_area_struct *vma,
+ void *cpu_addr, dma_addr_t dma_addr, size_t size,
+- unsigned long attrs)
++ struct dma_attrs *attrs)
+ {
+ #if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+ if (__generic_dma_ops(dev)->mmap)
+--- a/include/xen/swiotlb-xen.h
++++ b/include/xen/swiotlb-xen.h
+@@ -62,5 +62,5 @@ xen_swiotlb_set_dma_mask(struct device *
+ extern int
+ xen_swiotlb_dma_mmap(struct device *dev, struct vm_area_struct *vma,
+ void *cpu_addr, dma_addr_t dma_addr, size_t size,
+- unsigned long attrs);
++ struct dma_attrs *attrs);
+ #endif /* __LINUX_SWIOTLB_XEN_H */