commit:     e326cd4988465b5534b2c00ceaa49752ef6e7ce8
Author:     Andreas K. Huettel (dilfridge) <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 19 19:08:41 2015 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Sep 19 19:10:23 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e326cd49

app-emulation/vmware-modules: Add patch for Kernel 4.2, bug 559602

Package-Manager: portage-2.2.20.1

 .../vmware-modules/files/279-4.2-00-cookie.patch   | 79 ++++++++++++++++++++++
 .../vmware-modules/vmware-modules-279.6.ebuild     |  1 +
 2 files changed, 80 insertions(+)

diff --git a/app-emulation/vmware-modules/files/279-4.2-00-cookie.patch 
b/app-emulation/vmware-modules/files/279-4.2-00-cookie.patch
new file mode 100644
index 0000000..e2ab8a1
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-4.2-00-cookie.patch
@@ -0,0 +1,79 @@
+See https://bugs.gentoo.org/show_bug.cgi?id=559602
+Patch by Mike Auty <ike...@gentoo.org>
+
+diff --git a/vmblock-only/linux/inode.c b/vmblock-only/linux/inode.c
+index 4811abd..2cbc1f6 100644
+--- a/vmblock-only/linux/inode.c
++++ b/vmblock-only/linux/inode.c
+@@ -38,7 +38,9 @@
+ static struct dentry *InodeOpLookup(struct inode *dir,
+                                     struct dentry *dentry, unsigned int 
flags);
+ static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int 
buflen);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++static const char *InodeOpFollowlink(struct dentry *dentry, void **cookie); 
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
+ static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
+ #else
+ static int InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
+@@ -207,7 +209,12 @@ static void *
+ static int
+ #endif
+ InodeOpFollowlink(struct dentry *dentry,  // IN : dentry of symlink
+-                  struct nameidata *nd)   // OUT: stores result
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++                void **cookie
++#else
++                struct nameidata *nd
++#endif
++                )   // OUT: stores result
+ {
+    int ret;
+    VMBlockInodeInfo *iinfo;
+diff --git a/vmblock-only/linux/inode.c b/vmblock-only/linux/inode.c
+index acb2803..4811abd 100644
+--- a/vmblock-only/linux/inode.c
++++ b/vmblock-only/linux/inode.c
+@@ -199,7 +199,9 @@ InodeOpReadlink(struct dentry *dentry,  // IN : dentry of 
symlink
+  *----------------------------------------------------------------------------
+  */
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++static const char *
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
+ static void *
+ #else
+ static int
+@@ -222,8 +224,12 @@ InodeOpFollowlink(struct dentry *dentry,  // IN : dentry 
of symlink
+       goto out;
+    }
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++   return *cookie = (char *)(iinfo->name);
++#else
+    nd_set_link(nd, iinfo->name);
+    ret = 0;
++#endif
+ 
+ out:
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
+diff --git a/vmnet-only/vmnetInt.h b/vmnet-only/vmnetInt.h
+index 23b5d19..d129f7b 100644
+--- a/vmnet-only/vmnetInt.h
++++ b/vmnet-only/vmnetInt.h
+@@ -78,8 +78,13 @@
+ 
+ extern struct proto vmnet_proto;
+ #ifdef VMW_NETDEV_HAS_NET
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)  
+ #   define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \
+-                                                PF_NETLINK, _pri, 
&vmnet_proto)
++                                              PF_NETLINK, _pri, &vmnet_proto, 
1)
++# else
++#   define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \
++                                              PF_NETLINK, _pri, &vmnet_proto)
++# endif
+ #else
+ #   define compat_sk_alloc(_bri, _pri) sk_alloc(PF_NETLINK, _pri, 
&vmnet_proto, 1)
+ #endif

diff --git a/app-emulation/vmware-modules/vmware-modules-279.6.ebuild 
b/app-emulation/vmware-modules/vmware-modules-279.6.ebuild
index 4a78931..f10f4ee 100644
--- a/app-emulation/vmware-modules/vmware-modules-279.6.ebuild
+++ b/app-emulation/vmware-modules/vmware-modules-279.6.ebuild
@@ -98,6 +98,7 @@ src_prepare() {
        kernel_is ge 3 19 0 && epatch 
"${FILESDIR}/${PV_MAJOR}-3.19-05-vmci_qpair.patch"
        kernel_is ge 3 19 0 && epatch 
"${FILESDIR}/${PV_MAJOR}-3.19-06-vsock.patch"
        kernel_is ge 3 19 0 && epatch 
"${FILESDIR}/${PV_MAJOR}-3.19-07-vsock.patch"
+       kernel_is ge 4 2 0  && epatch 
"${FILESDIR}/${PV_MAJOR}-4.2-00-cookie.patch"
 
        # Allow user patches so they can support RC kernels and whatever else
        epatch_user

Reply via email to