PV-on-HVM: Fix PV-on-HVM drivers for IA64.
authorIan Campbell <ian.campbell@xensource.com>
Thu, 2 Nov 2006 11:56:26 +0000 (11:56 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Thu, 2 Nov 2006 11:56:26 +0000 (11:56 +0000)
Thanks to Kasai Takanori and Doi Tsunehisa for testing.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
linux-2.6-xen-sparse/arch/ia64/xen/xencomm.c
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c
linux-2.6-xen-sparse/include/asm-ia64/hypercall.h
unmodified_drivers/linux-2.6/compat-include/asm-generic/pgtable-nopud.h
unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h

index 3767e893fc5cbcc1359d73c879228c02938bb2b1..367b6b32deaf6eea3f8c6ecb54aa4a7ea16277bf 100644 (file)
 #include <linux/mm.h>
 #include <xen/interface/xen.h>
 #include <asm/page.h>
+
+#ifdef HAVE_XEN_PLATFORM_COMPAT_H
+#include <xen/platform-compat.h>
+#endif
+
 #include <asm/xen/xencomm.h>
 
 static int xencomm_debug = 0;
index ea8f3c283ecadf6d9ab0601ee2eb74d99b64d235..f0e42ba7150639bd5500a36822ffbebacc1a8c07 100644 (file)
  * IN THE SOFTWARE.
  */
 
-#include <asm/hypervisor.h>
-#include <xen/evtchn.h>
 #include <linux/wait.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
 #include <linux/err.h>
+#include <linux/ptrace.h>
+#include <xen/evtchn.h>
 #include <xen/xenbus.h>
+
+#include <asm/hypervisor.h>
+
 #include "xenbus_comms.h"
 
 #ifdef HAVE_XEN_PLATFORM_COMPAT_H
index 43f88b193097ea1dec2279a9a3c53d5db9688890..7a522be4836e41f25cbd480b94d3fa4338506ef6 100644 (file)
@@ -283,6 +283,9 @@ static inline void exit_idle(void) {}
 #ifdef CONFIG_XEN
 #include <asm/xen/privop.h>
 #endif /* CONFIG_XEN */
+#ifdef HAVE_XEN_PLATFORM_COMPAT_H
+#include <xen/platform-compat.h>
+#endif
 
 static inline unsigned long
 __HYPERVISOR_ioremap(unsigned long ioaddr, unsigned long size)
index 8b23299dd0e7c5185092cffdf3b6e8b48c7cfe0b..05c967576021afb271e66bb9e97c71bb7762667f 100644 (file)
@@ -9,6 +9,7 @@
 #define pud_offset(d, va)     d
 #define pud_none(pud)         0
 #define pud_present(pud)      1
+#define pud_bad(pud)          0
 #define PTRS_PER_PUD          1
 
 #endif /* _PGTABLE_NOPUD_H */
index 4978c6361060c94a3c739f9e55e2e4f4a35b62b9..ea0e6b308f4ba09dcb14fe429b5fe5356e234f46 100644 (file)
 #define NET_IP_ALIGN 0
 #endif
 
+#if defined(_LINUX_ERR_H) && !defined(IS_ERR_VALUE)
+#define IS_ERR_VALUE(x) unlikely((x) > (unsigned long)-1000L)
+#endif
+
+#if defined(_ASM_IA64_PGTABLE_H) && !defined(_PGTABLE_NOPUD_H)
+#include <asm-generic/pgtable-nopud.h>
+#endif
+
+/* Some kernels have this typedef backported so we cannot reliably
+ * detect based on version number, hence we forcibly #define it.
+ */
+#if defined(__LINUX_TYPES_H) || defined(__LINUX_GFP_H)
+#define gfp_t unsigned
+#endif
+
 #if defined(_LINUX_FS_H) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
 #define nonseekable_open(inode, filp) /* Nothing to do */
 #endif