File IA64-kvm-suse.patch of Package kvm-kmp
From: Raymund Will <rw@iridium.suse.de>
Date: Tue, 1 Oct 2008 11:40:05 +0200
Subject: [PATCH] KVM-ia64 build fix for SuSE Linux
---
qemu/Makefile.target | 6 ++++--
qemu/ia64.ld | 2 +-
qemu/target-ia64/cpu.h | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
Index: kvm-kmod-2.6.30.1/ia64/Makefile.pre
===================================================================
--- kvm-kmod-2.6.30.1.orig/ia64/Makefile.pre
+++ kvm-kmod-2.6.30.1/ia64/Makefile.pre
@@ -1,9 +1,9 @@
prerequisite: asm-offsets.h ia64/memset.S ia64/memcpy.S
- cp -f $(KERNELDIR)/arch/ia64/lib/memcpy.S ia64/memcpy.S
- cp -f $(KERNELDIR)/arch/ia64/lib/memset.S ia64/memset.S
+ cp -f /usr/src/linux/arch/ia64/lib/memcpy.S ia64/memcpy.S
+ cp -f /usr/src/linux/arch/ia64/lib/memset.S ia64/memset.S
cmp -s asm-offset.h ia64/asm-offset.h || mv -f asm-offsets.* ia64/
- cp -f $(KERNELDIR)/lib/vsprintf.c ia64/vsprintf.c
- cp -f $(KERNELDIR)/lib/ctype.c ia64/ctype.c
+ cp -f /usr/src/linux/lib/vsprintf.c ia64/vsprintf.c
+ cp -f /usr/src/linux/lib/ctype.c ia64/ctype.c
sed -i /^EXPORT_SYMBOL/d ia64/vsprintf.c
sed -i /^EXPORT_SYMBOL/d ia64/ctype.c
@@ -24,4 +24,4 @@ asm-offsets.h: asm-offsets.s
echo "#endif") <$< >$@
asm-offsets.s: ia64/asm-offsets.c
- gcc -S -D__KERNEL__ -I./include -I$(KERNELDIR)/include -I$(KERNELDIR)/arch/ia64/include ia64/asm-offsets.c
+ gcc -S -D__KERNEL__ -I./include -I$(KERNELDIR)/include -I$(KERNELDIR)/arch/ia64/include -Iinclude2 -I/usr/src/linux/include -I/usr/src/linux/arch/ia64/include ia64/asm-offsets.c
Index: kvm-kmod-2.6.30.1/include/asm-ia64/nr-irqs.h
===================================================================
--- /dev/null
+++ kvm-kmod-2.6.30.1/include/asm-ia64/nr-irqs.h
@@ -0,0 +1,12 @@
+#ifndef __ASM_NR_IRQS_H__
+#define __ASM_NR_IRQS_H__
+/*
+ * DO NOT MODIFY.
+ *
+ * This file was generated by Kbuild
+ *
+ */
+
+#define NR_IRQS 1024 /* sizeof (union paravirt_nr_irqs_max) // */
+
+#endif
Index: kvm-kmod-2.6.30.1/ia64/kvm_main.c
===================================================================
--- kvm-kmod-2.6.30.1.orig/ia64/kvm_main.c
+++ kvm-kmod-2.6.30.1/ia64/kvm_main.c
@@ -1,3 +1,6 @@
+#define VMA_OPS_FAULT(x) x
+#define VMA_OPS_FAULT_FUNC(x) x
+
#ifndef KVM_UNIFDEF_H
#define KVM_UNIFDEF_H
@@ -2478,7 +2481,7 @@ IF_ANON_INODES_DOES_REFCOUNTS( kvm_vcpu_
__free_page(bad_page);
goto out;
}
- preempt_notifier_sys_init();
+ // preempt_notifier_sys_init();
printk("loaded kvm module (kvm-kmod-2.6.30.1)\n");
return 0;
@@ -2523,6 +2526,6 @@ void kvm_exit(void)
free_cpumask_var(cpus_hardware_enabled);
__free_page(bad_page);
kvm_exit_anon_inodes();
- preempt_notifier_sys_exit();
+ // preempt_notifier_sys_exit();
}
EXPORT_SYMBOL_GPL(kvm_exit);
Index: kvm-kmod-2.6.30.1/ia64/vtlb.c
===================================================================
--- kvm-kmod-2.6.30.1.orig/ia64/vtlb.c
+++ kvm-kmod-2.6.30.1/ia64/vtlb.c
@@ -250,7 +250,7 @@ void thash_vhpt_insert(struct kvm_vcpu *
phy_pte &= ~PAGE_FLAGS_RV_MASK;
psr = ia64_clear_ic();
ia64_itc(type, va, phy_pte, itir_ps(itir));
- paravirt_dv_serialize_data();
+ // paravirt_dv_serialize_data();
ia64_set_psr(psr);
}
@@ -497,7 +497,7 @@ void thash_purge_and_insert(struct kvm_
phy_pte &= ~PAGE_FLAGS_RV_MASK;
psr = ia64_clear_ic();
ia64_itc(type, ifa, phy_pte, ps);
- paravirt_dv_serialize_data();
+ // paravirt_dv_serialize_data();
ia64_set_psr(psr);
}
if (!(pte&VTLB_PTE_IO))