linux-3.6.x で VMware player 5.0.0 をつかうためのパッチです。このパッチは多分 VMware workstation 9 でも使えます
diff -uNr original/vmmon-only/linux/hostif.c vmmon-only/linux/hostif.c --- original/vmmon-only/linux/hostif.c 2012-08-15 18:28:43.000000000 -0400 +++ vmmon-only/linux/hostif.c 2012-10-08 22:18:26.326548142 -0400 @@ -48,6 +48,7 @@ #include <linux/smp_lock.h> #endif +#include <asm/asm.h> #include <asm/io.h> #include <asm/uaccess.h> #include <linux/mc146818rtc.h> @@ -3586,31 +3587,14 @@ { int ret; unsigned low, high; -#if defined(VM_X86_64) asm volatile("2: rdmsr ; xor %0,%0\n" "1:\n\t" ".section .fixup,\"ax\"\n\t" "3: mov %4,%0 ; jmp 1b\n\t" ".previous\n\t" - ".section __ex_table,\"a\"\n\t" - ".balign 8\n" - ".quad 2b,3b\n" - ".previous\n" + _ASM_EXTABLE(2b,3b) : "=r"(ret), "=a"(low), "=d"(high) : "c"(msr), "i"(-EFAULT), "1"(0), "2"(0)); // init eax/edx to 0 -#else - asm volatile("2: rdmsr ; xor %0,%0\n" - "1:\n\t" - ".section .fixup,\"ax\"\n\t" - "3: mov %4,%0 ; jmp 1b\n\t" - ".previous\n\t" - ".section __ex_table,\"a\"\n" - ".balign 4\n" - ".long 2b,3b\n" - ".previous\n" - : "=r"(ret), "=a"(low), "=d"(high) - : "c"(msr), "i"(-EFAULT), "1"(0), "2"(0)); // init eax/edx to 0 -#endif // VM_X86_64 *val = (low | ((u64)(high) << 32)); return ret;