VMware用パッチ for linux-3.6.x

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;