VMware Communities
johnk_dev_null
Contributor
Contributor

Kernel 4.1.2 needs a patch for Workstation vmnet module

I'm still running Workstation 8.0.6 build-1035888 on Linux.  Specifically Fedora 22.

The recent Fedora update of kernel version 4.0.8 up to 4.1.2 rendered my kernel modules out of date and I found that vmnet would no longer compile successfully. 

The error was very similar to a previous one from an issue with kernel 3.13

/tmp/modconfig-LTmunl/vmnet-only/filter.c:206:1: error: conflicting types for ‘VNetFilterHookFn’

VNetFilterHookFn(unsigned int hooknum,                 // IN:

^

/tmp/modconfig-LTmunl/vmnet-only/filter.c:64:18: note: previous declaration of ‘VNetFilterHookFn’ was here

static nf_hookfn VNetFilterHookFn;

The following patch fixed it for me as the problem was a further change in the Linux netfilter.h file where the definition of  nf_hookfn has changed.

--- vmnet-only/filter.c    2015-07-30 19:23:08.368819815 +0100

+++ vmnet-only/filter.c.new    2015-07-30 19:22:41.786537641 +0100

@@ -213,9 +213,14 @@

#else

                  struct sk_buff **pskb,                // IN:

#endif

+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 2)

                  const struct net_device *in,          // IN:

                  const struct net_device *out,         // IN:

                  int (*okfn)(struct sk_buff *))        // IN:

+#else

+                 const struct nf_hook_state *state)    // IN:

+#endif

+

{

#ifndef VMW_NFHOOK_USES_SKB

    struct sk_buff *skb = *pskb;

To apply it, copy it into a file called /root/vmnet.patch and use the following (as root) -

cd /root

mkdir vmware_modules

cp /usr/lib/vmware/modules/source/vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar.orig

cp /usr/lib/vmware/modules/source/vmnet.tar vmware_modules

cd vmware_modules

tar xf vmnet.tar

patch -p 0 < /root/vmnet.patch

tar cf vmnet.tar vmnet-only

cp vmnet.tar /usr/lib/vmware/modules/source

cd /root

rm -rf vmware_modules

Then rebuild your modules as usual.

Tags (2)
0 Kudos
2 Replies
CarlSeibert
Contributor
Contributor

I'd like to run 8.0 on Fedora 22, as well. (just upgraded to fc22 during rebuild after lightning destroyed my machine)

I ran into the config script failing to find my installed kernel headers, and I haven't yet figured out how to get past that. Did you encounter the same thing?

My kernel is 4.1.6. I haven't gotten far enough to see if your patch is going to work with the revision or not. Crossing fingers....

0 Kudos
Virtually
Enthusiast
Enthusiast

CarlSeibert,

Have you updated your "kernel-devel" package?

It needs to be re-downloaded and installed every time you update the kernel itself.

0 Kudos