Skip to content

Instantly share code, notes, and snippets.

@raymond-w-ko
Created February 9, 2015 20:52
Show Gist options
  • Save raymond-w-ko/eed0e56ae71303eb4bae to your computer and use it in GitHub Desktop.
Save raymond-w-ko/eed0e56ae71303eb4bae to your computer and use it in GitHub Desktop.
vmware-patch fix for VMware 11.0.0 and Linux 3.19.0
diff -rupN vmware-patch.a/PKGBUILD vmware-patch/PKGBUILD
--- vmware-patch.a/PKGBUILD 2015-02-07 19:54:31.000000000 -0500
+++ vmware-patch/PKGBUILD 2015-02-09 15:47:12.793839736 -0500
@@ -12,6 +12,8 @@ depends=('fuse' 'gtkmm' 'linux-headers')
options=('!emptydirs')
install=$pkgname.install
source=('vmware-patch' 'vmware-unpatch' 'common-functions.sh' 'vmware.service' 'vmware-usbarbitrator.service' 'vmware-workstation.service'
+ # Workstation 11.0.0 / Player (Plus) 7.0.0
+ 'vmnet-11.0.0-3.19.patch'
# Workstation 10.0.5 / Player (Plus) 6.0.5
'vmci-10.0.5-3.14.patch'
'vmmon-10.0.5-3.14.patch'
@@ -61,6 +63,7 @@ md5sums=('bac9aaf69a3e0ede6edcce301cf114
'03f7b0d6a304557e30c111b88fad69c6'
'ea3817fb7952932707bfedcf33a70697'
'56f7f642683e54250372bb57faaf4e95'
+ '350679df90d266fe7dd343922622c39e'
'9e2c8d4d91d54edb249da24031de6985'
'298e1b59a9e729525cc3fa9d06f127eb'
'43dee79cc5f5980372e16a20962b3105'
@@ -70,4 +73,4 @@ md5sums=('bac9aaf69a3e0ede6edcce301cf114
'4eca49060d2373c259a0c045520de9f9'
'acd25c0daccb62af8abf750e6369ae25'
'639ed104e10c838e264c0314d2485f36'
- 'd980b5092aeee55edc6dbafb843d886f')
\ No newline at end of file
+ 'd980b5092aeee55edc6dbafb843d886f')
diff -rupN vmware-patch.a/vmnet-11.0.0-3.19.patch vmware-patch/vmnet-11.0.0-3.19.patch
--- vmware-patch.a/vmnet-11.0.0-3.19.patch 1969-12-31 19:00:00.000000000 -0500
+++ vmware-patch/vmnet-11.0.0-3.19.patch 2015-02-09 15:43:24.463276667 -0500
@@ -0,0 +1,58 @@
+diff -ur vmnet-only.a/driver.c vmnet-only/driver.c
+--- vmnet-only.a/driver.c 2014-11-20 20:13:56.000000000 -0500
++++ vmnet-only/driver.c 2015-02-09 15:40:10.916640592 -0500
+@@ -265,10 +265,17 @@
+ {
+ int ret = -ENOTTY;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+ ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
+ }
+ return ret;
++#else
++ if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
++ ret = VNetFileOpIoctl(filp->f_path.dentry->d_inode, filp, iocmd, ioarg);
++ }
++ return ret;
++#endif
+ }
+
+
+@@ -1191,11 +1198,19 @@
+ struct inode *inode = NULL;
+ long err;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ if (filp && filp->f_dentry) {
+ inode = filp->f_dentry->d_inode;
+ }
+ err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+ return err;
++#else
++ if (filp && filp->f_path.dentry) {
++ inode = filp->f_path.dentry->d_inode;
++ }
++ err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
++ return err;
++#endif
+ }
+ #endif
+
+diff -ur vmnet-only.a/userif.c vmnet-only/userif.c
+--- vmnet-only.a/userif.c 2014-11-20 20:13:56.000000000 -0500
++++ vmnet-only/userif.c 2015-02-09 15:41:02.150847338 -0500
+@@ -523,7 +523,13 @@
+ .iov_base = buf,
+ .iov_len = len,
+ };
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ return skb_copy_datagram_iovec(skb, 0, &iov, len);
++#else
++ struct iov_iter to;
++ iov_iter_init(&to, READ, &iov, 1, len);
++ return skb_copy_datagram_iter(skb, 0, &to, len);
++#endif
+ }
+
+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment