Skip to content

Commit

Permalink
app-emulation/vmware-modules: Add patch for Kernel 4.2, bug 559602
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.20.1
  • Loading branch information
akhuettel committed Sep 19, 2015
1 parent 57a772a commit e326cd4
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
79 changes: 79 additions & 0 deletions app-emulation/vmware-modules/files/279-4.2-00-cookie.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
See https://bugs.gentoo.org/show_bug.cgi?id=559602
Patch by Mike Auty <[email protected]>

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
1 change: 1 addition & 0 deletions app-emulation/vmware-modules/vmware-modules-279.6.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit e326cd4

Please sign in to comment.