diff -r 4c0fea2535cf SOURCES/linux-2.6-xen.patch --- a/SOURCES/linux-2.6-xen.patch Mon Jun 12 19:07:13 2006 -0400 +++ b/SOURCES/linux-2.6-xen.patch Thu Jun 15 12:44:19 2006 +0800 @@ -72773,37 +72773,6 @@ diff -uNrp --exclude='.*' ../upstream/hg # endif /* KERNEL */ -@@ -416,14 +450,28 @@ __writeq (unsigned long val, volatile vo - # define outl_p outl - #endif - --extern void __iomem * ioremap(unsigned long offset, unsigned long size); --extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); -+/* -+ * An "address" in IO memory space is not clearly either an integer or a pointer. We will -+ * accept both, thus the casts. -+ * -+ * On ia-64, we access the physical I/O memory space through the uncached kernel region. -+ */ -+static inline void __iomem * -+ioremap (unsigned long offset, unsigned long size) -+{ -+#ifdef CONFIG_XEN -+ offset = HYPERVISOR_ioremap(offset, size); -+#endif -+ return (void __iomem *) (__IA64_UNCACHED_OFFSET | (offset)); -+} - - static inline void - iounmap (volatile void __iomem *addr) - { - } - -+#define ioremap_nocache(o,s) ioremap(o,s) -+ - /* Use normal IO mappings for DMI */ - #define dmi_ioremap ioremap - #define dmi_iounmap(x,l) iounmap(x) diff -uNrp --exclude='.*' ../upstream/hg/linux-2.6/include/asm-ia64/iosapic.h merge/include/asm-ia64/iosapic.h --- ../upstream/hg/linux-2.6/include/asm-ia64/iosapic.h 2005-11-07 20:02:53.000000000 +0100 +++ merge/include/asm-ia64/iosapic.h 2006-05-30 12:43:47.000000000 +0200