Skip to content

Commit fbcd0c0

Browse files
committed
Add patches for 3.16 kernels
1 parent 60e7835 commit fbcd0c0

File tree

3 files changed

+155
-0
lines changed

3 files changed

+155
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
From 4601d767d60e9a377c285994266c6fef49cae550 Mon Sep 17 00:00:00 2001
2+
From: "Scott M. Kroll" <[email protected]>
3+
Date: Fri, 15 Aug 2014 10:40:38 -0400
4+
Subject: [PATCH 10/11] Fix vmxnet module on kernels >= 3.16
5+
6+
* Add compat check for ethtool_ops in net_device struct.
7+
* SET_ETHTOOL_OPS is no longer defined, but can be manually.
8+
---
9+
open-vm-tools/modules/linux/shared/compat_netdevice.h | 4 ++++
10+
open-vm-tools/modules/linux/vmxnet/vmxnet.c | 13 ++++++++-----
11+
2 files changed, 12 insertions(+), 5 deletions(-)
12+
13+
diff --git a/open-vm-tools/modules/linux/shared/compat_netdevice.h b/open-vm-tools/modules/linux/shared/compat_netdevice.h
14+
index 3aec25b..a65d59b 100644
15+
--- a/open-vm-tools/modules/linux/shared/compat_netdevice.h
16+
+++ b/open-vm-tools/modules/linux/shared/compat_netdevice.h
17+
@@ -337,4 +337,8 @@ typedef netdev_features_t compat_netdev_features_t;
18+
typedef u32 compat_netdev_features_t;
19+
#endif
20+
21+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) || defined(SET_ETHTOOL_OPS)
22+
+#define VMW_HAVE_ETHTOOL_OPS 1
23+
+#endif
24+
+
25+
#endif /* __COMPAT_NETDEVICE_H__ */
26+
diff --git a/open-vm-tools/modules/linux/vmxnet/vmxnet.c b/open-vm-tools/modules/linux/vmxnet/vmxnet.c
27+
index 54b4590..7fb5692 100644
28+
--- a/open-vm-tools/modules/linux/vmxnet/vmxnet.c
29+
+++ b/open-vm-tools/modules/linux/vmxnet/vmxnet.c
30+
@@ -283,8 +283,7 @@ vmxnet_change_mtu(struct net_device *dev, int new_mtu)
31+
32+
#endif
33+
34+
-
35+
-#ifdef SET_ETHTOOL_OPS
36+
+#ifdef VMW_HAVE_ETHTOOL_OPS
37+
/*
38+
*----------------------------------------------------------------------------
39+
*
40+
@@ -530,7 +529,7 @@ vmxnet_ethtool_ops = {
41+
};
42+
43+
44+
-#else /* !defined(SET_ETHTOOL_OPS) */
45+
+#else /* !defined(VMW_HAVE_ETHTOOL_OPS) */
46+
47+
48+
/*
49+
@@ -743,7 +742,7 @@ vmxnet_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
50+
}
51+
return -EOPNOTSUPP;
52+
}
53+
-#endif /* SET_ETHTOOL_OPS */
54+
+#endif /* !defined(VMW_HAVE_ETHTOOL_OPS) */
55+
56+
57+
/*
58+
@@ -1142,8 +1141,12 @@ vmxnet_probe_device(struct pci_dev *pdev, // IN: vmxnet PCI device
59+
dev->watchdog_timeo = VMXNET_WATCHDOG_TIMEOUT;
60+
#endif
61+
62+
-#ifdef SET_ETHTOOL_OPS
63+
+#ifdef VMW_HAVE_ETHTOOL_OPS
64+
+# ifdef SET_ETHTOOL_OPS
65+
SET_ETHTOOL_OPS(dev, &vmxnet_ethtool_ops);
66+
+# else
67+
+ dev->ethtool_ops = &vmxnet_ethtool_ops;
68+
+# endif
69+
#else
70+
dev->do_ioctl = vmxnet_ioctl;
71+
#endif
72+
--
73+
2.0.4
74+
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
From 6497dbbabb9506df8e16b60bf2cd396a8c6bb26b Mon Sep 17 00:00:00 2001
2+
From: "Scott M. Kroll" <[email protected]>
3+
Date: Fri, 15 Aug 2014 10:42:30 -0400
4+
Subject: [PATCH 11/11] Fix vmhgfs module on kernels >= 3.16
5+
6+
* Use read_iter/write_iter file operations on kernels >= 3.16.
7+
* Do not set aio_read/aio_write on kernels >= 3.16.
8+
---
9+
open-vm-tools/modules/linux/vmhgfs/file.c | 16 ++++++++++++----
10+
1 file changed, 12 insertions(+), 4 deletions(-)
11+
12+
diff --git a/open-vm-tools/modules/linux/vmhgfs/file.c b/open-vm-tools/modules/linux/vmhgfs/file.c
13+
index 825cebe..67606fd 100644
14+
--- a/open-vm-tools/modules/linux/vmhgfs/file.c
15+
+++ b/open-vm-tools/modules/linux/vmhgfs/file.c
16+
@@ -76,6 +76,7 @@ static int HgfsGetOpenFlags(uint32 flags);
17+
static int HgfsOpen(struct inode *inode,
18+
struct file *file);
19+
#if defined VMW_USE_AIO
20+
+# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
21+
static ssize_t HgfsAioRead(struct kiocb *iocb,
22+
const struct iovec *iov,
23+
unsigned long numSegs,
24+
@@ -84,6 +85,7 @@ static ssize_t HgfsAioWrite(struct kiocb *iocb,
25+
const struct iovec *iov,
26+
unsigned long numSegs,
27+
loff_t offset);
28+
+# endif
29+
#else
30+
static ssize_t HgfsRead(struct file *file,
31+
char __user *buf,
32+
@@ -150,15 +152,20 @@ struct file_operations HgfsFileFileOperations = {
33+
.open = HgfsOpen,
34+
.llseek = HgfsSeek,
35+
.flush = HgfsFlush,
36+
-#if defined VMW_USE_AIO
37+
+#ifdef VMW_USE_AIO
38+
.read = do_sync_read,
39+
.write = do_sync_write,
40+
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
41+
+ .read_iter = generic_file_read_iter,
42+
+ .write_iter = generic_file_write_iter,
43+
+# else
44+
.aio_read = HgfsAioRead,
45+
.aio_write = HgfsAioWrite,
46+
-#else
47+
+# endif
48+
+#else /* !VMW_USE_AIO */
49+
.read = HgfsRead,
50+
.write = HgfsWrite,
51+
-#endif
52+
+#endif /* !VMW_USE_AIO */
53+
.fsync = HgfsFsync,
54+
.mmap = HgfsMmap,
55+
.release = HgfsRelease,
56+
@@ -748,6 +755,7 @@ out:
57+
58+
59+
#if defined VMW_USE_AIO
60+
+# if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
61+
/*
62+
*----------------------------------------------------------------------
63+
*
64+
@@ -883,7 +891,7 @@ out:
65+
return result;
66+
}
67+
68+
-
69+
+# endif /* if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0) */
70+
#else
71+
/*
72+
*----------------------------------------------------------------------
73+
--
74+
2.0.4
75+

PKGBUILD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,17 @@ source=(http://downloads.sourceforge.net/${_name}/${_full_name}.tar.gz
2828
0003-Add-kuid_t-kgid_t-compatibility-layer.patch
2929
0004-Use-new-link-helpers.patch
3030
0005-Update-hgfs-file-operations-for-newer-kernels.patch
31+
0006-Fix-vmxnet-module-on-kernels-3.16.patch
32+
0007-Fix-vmhgfs-module-on-kernels-3.16.patch
3133
dkms.conf.in)
3234
sha256sums=('54d7a83d8115124e4b809098b08d7017ba50828801c2f105cdadbc85a064a079'
3335
'a30ea0d0e2dd025eecb435c7a7b02b7c69e03fac8e67dc5d7f68998847a97240'
3436
'711e75244057b38de0b8523721106393de0fe9c2c82b0216c57c3b763b49798f'
3537
'1c685010a0e19456e71c60dd7d15550077da6ef37042d9df40d7e951611130aa'
3638
'91a46d4f7bc042b6d06e7a8cdf359f520ee95e9bf4d4bcaa3f11a701b388a40f'
3739
'27af7dcc051e13d3cab434aff6ccd4366b151516fb70cc84d913e15bccf49fcc'
40+
'cbb7116499a33872e1861e050db81c3384e4ff59b767233d34b434ce12e899ad'
41+
'e8248176971056aca54d1e69a4b2f90e04a1589dd4b596b2af6746be9c3e96a3'
3842
'5255a183cccd80b2bfbbf519b1cc8cec81ae40bbc0b5a88dfddd95532ece84ed')
3943

4044
prepare() {
@@ -43,6 +47,8 @@ prepare() {
4347
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0003-Add-kuid_t-kgid_t-compatibility-layer.patch"
4448
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0004-Use-new-link-helpers.patch"
4549
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0005-Update-hgfs-file-operations-for-newer-kernels.patch"
50+
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0006-Fix-vmxnet-module-on-kernels-3.16.patch"
51+
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0007-Fix-vmhgfs-module-on-kernels-3.16.patch"
4652
}
4753

4854
package() {

0 commit comments

Comments
 (0)