--- /dev/null
+From f9005571701920551bcf54a500973fb61f2e1eda Mon Sep 17 00:00:00 2001
+From: Stefano Stabellini <stefanos@xilinx.com>
+Date: Wed, 31 Oct 2018 16:11:49 -0700
+Subject: CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
+
+From: Stefano Stabellini <stefanos@xilinx.com>
+
+commit f9005571701920551bcf54a500973fb61f2e1eda upstream.
+
+xen_create_contiguous_region has now only an implementation if
+CONFIG_XEN_PV is defined. However, on ARM we never set CONFIG_XEN_PV but
+we do have an implementation of xen_create_contiguous_region which is
+required for swiotlb-xen to work correctly (although it just sets
+*dma_handle).
+
+[backport: remove change to xen_remap_pfn]
+
+Cc: <stable@vger.kernel.org> # 4.12
+Fixes: 16624390816c ("xen: create xen_create/destroy_contiguous_region() stubs for PVHVM only builds")
+Signed-off-by: Stefano Stabellini <stefanos@xilinx.com>
+Reviewed-by: Juergen Gross <jgross@suse.com>
+CC: Jeff.Kubascik@dornerworks.com
+CC: Jarvis.Roach@dornerworks.com
+CC: Nathan.Studer@dornerworks.com
+CC: vkuznets@redhat.com
+CC: boris.ostrovsky@oracle.com
+CC: jgross@suse.com
+CC: julien.grall@arm.com
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/xen/xen-ops.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/xen/xen-ops.h
++++ b/include/xen/xen-ops.h
+@@ -41,7 +41,7 @@ int xen_setup_shutdown_event(void);
+
+ extern unsigned long *xen_contiguous_bitmap;
+
+-#ifdef CONFIG_XEN_PV
++#if defined(CONFIG_XEN_PV) || defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+ int xen_create_contiguous_region(phys_addr_t pstart, unsigned int order,
+ unsigned int address_bits,
+ dma_addr_t *dma_handle);