VMware用パッチ for linux-3.4.3

linux-3.4.3 で VMware player をつかうためのパッチを書いたので,貼っておきます.

動作確認は VMware player 4.0.4 と linux-3.4.3 で行なっています

たぶん linux-3.2.x とか linux-3.3.x でも動きます.

diff -uNr original/vmblock-only/linux/filesystem.c vmblock-only/linux/filesystem.c
--- original/vmblock-only/linux/filesystem.c    2012-06-09 15:50:06.000000000 +0900
+++ vmblock-only/linux/filesystem.c     2012-06-19 18:24:21.149878737 +0900
@@ -525,7 +525,11 @@
       return -EINVAL;
    }
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+   rootDentry = d_make_root(rootInode);
+#else
    rootDentry = d_alloc_root(rootInode);
+#endif
    if (!rootDentry) {
       iput(rootInode);
       return -ENOMEM;
diff -uNr original/vmnet-only/filter.c vmnet-only/filter.c
--- original/vmnet-only/filter.c        2012-06-09 16:29:57.000000000 +0900
+++ vmnet-only/filter.c 2012-06-19 18:16:30.564390201 +0900
@@ -40,6 +40,7 @@
 #include "vnetInt.h"
 #include "vmnetInt.h"
 
+#include "compat_module.h"
 // VNet_FilterLogPacket.action for dropped packets
 #define VNET_FILTER_ACTION_DRP         (1)
 #define VNET_FILTER_ACTION_DRP_SHORT   (2)
diff -uNr original/vmnet-only/netif.c vmnet-only/netif.c
--- original/vmnet-only/netif.c 2012-06-09 16:29:57.000000000 +0900
+++ vmnet-only/netif.c  2012-06-19 18:15:13.400443831 +0900
@@ -131,7 +131,10 @@
       .ndo_stop = VNetNetifClose,
       .ndo_get_stats = VNetNetifGetStats,
       .ndo_set_mac_address = VNetNetifSetMAC,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+#else
       .ndo_set_multicast_list = VNetNetifSetMulticast,
+#endif
       /*
        * We cannot stuck... If someone will report problems under
        * low memory conditions or some such, we should enable it.
diff -uNr original/vmnet-only/userif.c vmnet-only/userif.c
--- original/vmnet-only/userif.c        2012-06-09 16:29:57.000000000 +0900
+++ vmnet-only/userif.c 2012-06-19 18:13:53.229577246 +0900
@@ -517,10 +517,18 @@
         unsigned int tmpCsum;
         const void *vaddr;
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+        vaddr = kmap(skb_frag_page(frag));
+#else
         vaddr = kmap(frag->page);
+#endif
         tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
                                         curr, frag->size, 0, &err);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+        kunmap(skb_frag_page(frag));
+#else
         kunmap(frag->page);
+#endif
         if (err) {
            return err;
         }


( diff の取り方がいまいちですが,必要な人は各自なんとかしてください.)