diff -X /home/avi/kvm/linux-2.6/Documentation/dontdiff --exclude=Makefile -ru /home/avi/kvm/linux-2.6/drivers/kvm/kvm_main.c /home/avi/kvm-release/kernel/kvm_main.c --- linux-2.6/drivers/kvm/kvm_main.c 2006-12-03 10:43:09.000000000 +0200 +++ linux-2.6/drivers/kvm/kvm_main.c 2006-12-03 10:42:36.000000000 +0200 @@ -90,6 +90,9 @@ typedef unsigned long ul; unsigned long v; + if (selector == 0) + return 0; + asm ("sgdt %0" : "=m"(gdt)); table_base = gdt.base; diff -X /home/avi/kvm/linux-2.6/Documentation/dontdiff --exclude=Makefile -ru /home/avi/kvm/linux-2.6/drivers/kvm/vmx.c /home/avi/kvm-release/kernel/vmx.c --- linux-2.6/drivers/kvm/vmx.c 2006-12-03 10:43:09.000000000 +0200 +++ linux-2.6/drivers/kvm/vmx.c 2006-12-03 10:41:44.000000000 +0200 @@ -1702,6 +1702,9 @@ #ifdef __x86_64__ vmcs_writel(HOST_FS_BASE, read_msr(MSR_FS_BASE)); vmcs_writel(HOST_GS_BASE, read_msr(MSR_GS_BASE)); +#else + vmcs_writel(HOST_FS_BASE, segment_base(fs_sel)); + vmcs_writel(HOST_GS_BASE, segment_base(gs_sel)); #endif if (vcpu->irq_summary &&