commit 990a3885946f11df2706de87ef53cfbcd447a32c
Author: root <root@vt32-pae.(none)>
Date:   Wed Jul 18 10:12:59 2007 +0800

    Enable kernel apic/ioapic support

    Signed-off-by: Yaozu (Eddie) Dong <eddie.dong@intel.com>

diff --git a/kernel/Kbuild b/kernel/Kbuild
index ceb6e4b..a502c02 100644
--- a/kernel/Kbuild
+++ b/kernel/Kbuild
@@ -1,5 +1,5 @@
 EXTRA_CFLAGS := -I$(src)/include -include $(src)/external-module-compat.h
 obj-m := kvm.o kvm-intel.o kvm-amd.o
-kvm-objs := kvm_main.o mmu.o x86_emulate.o anon_inodes.o irq.o i8259.o lapic.o
+kvm-objs := kvm_main.o mmu.o x86_emulate.o anon_inodes.o irq.o i8259.o lapic.o ioapic.o
 kvm-intel-objs := vmx.o vmx-debug.o
 kvm-amd-objs := svm.o
diff --git a/user/kvmctl.c b/user/kvmctl.c
index d610111..51ab82d 100644
--- a/user/kvmctl.c
+++ b/user/kvmctl.c
@@ -1048,25 +1048,6 @@ int kvm_guest_debug(kvm_context_t kvm, int vcpu, struct kvm_debug_guest *dbg)
 	return ioctl(kvm->vcpu_fd[vcpu], KVM_DEBUG_GUEST, dbg);
 }
 
-static void cpuid_remove_apic(struct kvm_cpuid *cpuid)
-{
-	int i;
-	struct kvm_cpuid_entry *e, *entry;
-
-	entry = NULL;
-	for (i = 0; i < cpuid->nent; ++i) {
-		e = &cpuid->entries[i];
-		if (e->function == 1) {
-			entry = e;
-			break;
-		}
-	}
-	if (entry) {
-		entry->edx &= ~(1 << 9);
-		printf("Guest APIC capibility removed\n");
-	}
-}
-
 int kvm_setup_cpuid(kvm_context_t kvm, int vcpu, int nent,
 		    struct kvm_cpuid_entry *entries)
 {
@@ -1079,8 +1060,6 @@ int kvm_setup_cpuid(kvm_context_t kvm, int vcpu, int nent,
 
 	cpuid->nent = nent;
 	memcpy(cpuid->entries, entries, nent * sizeof(*entries));
-	/* temply walkaround before merge of in-kernel APIC */
-	cpuid_remove_apic(cpuid);
 	r = ioctl(kvm->vcpu_fd[vcpu], KVM_SET_CPUID, cpuid);
 
 	free(cpuid);
