--- /dev/null
+From cd7bcf32d42b15891620b3f1387a00178b54291a Mon Sep 17 00:00:00 2001
+From: Luck, Tony <tony.luck@intel.com>
+Date: Mon, 14 Dec 2009 20:00:36 +0000
+Subject: implement early_io{re,un}map for ia64
+
+From: Luck, Tony <tony.luck@intel.com>
+
+commit cd7bcf32d42b15891620b3f1387a00178b54291a upstream.
+
+Needed for commit 2c992208 ("intel-iommu: Detect DMAR in hyperspace at
+probe time.) to build on IA64.
+
+Signed-off-by: Tony Luck <tony.luck@intel.com>
+Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/ia64/include/asm/io.h | 2 ++
+ arch/ia64/mm/ioremap.c | 11 +++++++++++
+ 2 files changed, 13 insertions(+)
+
+--- a/arch/ia64/include/asm/io.h
++++ b/arch/ia64/include/asm/io.h
+@@ -424,6 +424,8 @@ __writeq (unsigned long val, volatile vo
+ extern void __iomem * ioremap(unsigned long offset, unsigned long size);
+ extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);
+ extern void iounmap (volatile void __iomem *addr);
++extern void __iomem * early_ioremap (unsigned long phys_addr, unsigned long size);
++extern void early_iounmap (volatile void __iomem *addr, unsigned long size);
+
+ /*
+ * String version of IO memory access ops:
+--- a/arch/ia64/mm/ioremap.c
++++ b/arch/ia64/mm/ioremap.c
+@@ -22,6 +22,12 @@ __ioremap (unsigned long phys_addr)
+ }
+
+ void __iomem *
++early_ioremap (unsigned long phys_addr, unsigned long size)
++{
++ return __ioremap(phys_addr);
++}
++
++void __iomem *
+ ioremap (unsigned long phys_addr, unsigned long size)
+ {
+ void __iomem *addr;
+@@ -102,6 +108,11 @@ ioremap_nocache (unsigned long phys_addr
+ EXPORT_SYMBOL(ioremap_nocache);
+
+ void
++early_iounmap (volatile void __iomem *addr, unsigned long size)
++{
++}
++
++void
+ iounmap (volatile void __iomem *addr)
+ {
+ if (REGION_NUMBER(addr) == RGN_GATE)