summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2022-04-09 15:35:02 +0200
committerJean-Marc Lenoir2022-04-09 15:35:02 +0200
commit70e5ad79c923c691cb607c575f9d1cc6681b2466 (patch)
tree15ebfc31b5d5bab11793d601d356827e2d2113de
parent7727b6f2688d413a95e93812a84a2debf47fa8f7 (diff)
downloadaur-70e5ad79c923c691cb607c575f9d1cc6681b2466.tar.gz
Compatibility with Linux 5.18-rc1
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD6
-rw-r--r--vmmon.patch28
-rw-r--r--vmnet.patch63
4 files changed, 97 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 722746f51bd3..064ca2630487 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = vmware-workstation14
pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
pkgver = 14.1.7
- pkgrel = 14
+ pkgrel = 15
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
arch = x86_64
@@ -88,7 +88,7 @@ pkgbase = vmware-workstation14
sha256sums = fe1b1be8297f4170406f97dd1f8b385d911faf45afe19cbc0c26b8092b3ddf8d
sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e
sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac
- sha256sums = 161720a88406a8ca4e6aa3920f291ad43ac0c94d068c3ea1b893cc3fb99ca6de
- sha256sums = dfbff7b2caebab70e64eaf775b515bbac51fdb4d547910c60449dd98ddd2752b
+ sha256sums = 33597acdf43b7e8b22724781d9da0043db1c76a498613933c706452c2dc326c2
+ sha256sums = 534d4e3fbd6b30d8fe9f9aecfd2487d6684ace64ab14f2fc19cd51c66cd44024
pkgname = vmware-workstation14
diff --git a/PKGBUILD b/PKGBUILD
index 3055b650d9a8..1879662f6c56 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -16,7 +16,7 @@ pkgname=vmware-workstation14
pkgver=14.1.7
_buildver=12989993
_pkgver=${pkgver}_${_buildver}
-pkgrel=14
+pkgrel=15
pkgdesc='The industry standard for running multiple operating systems as virtual machines on a single Linux PC.'
arch=(x86_64)
url='https://www.vmware.com/products/workstation-for-linux.html'
@@ -125,8 +125,8 @@ sha256sums=(
'10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e'
'273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac'
- '161720a88406a8ca4e6aa3920f291ad43ac0c94d068c3ea1b893cc3fb99ca6de'
- 'dfbff7b2caebab70e64eaf775b515bbac51fdb4d547910c60449dd98ddd2752b'
+ '33597acdf43b7e8b22724781d9da0043db1c76a498613933c706452c2dc326c2'
+ '534d4e3fbd6b30d8fe9f9aecfd2487d6684ace64ab14f2fc19cd51c66cd44024'
)
options=(!strip emptydirs)
diff --git a/vmmon.patch b/vmmon.patch
index dbe647f0d05e..309bb7c52dc5 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -458,3 +458,31 @@
printk(KERN_ERR "%s: Couldn't verify write to uva 0x%p with size %"
FMTSZ"u\n", __func__, p, size);
+From 16d490ae022d7fc4ca867971e20e2dcd59e6ca5a Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 4 Apr 2022 01:57:28 +0200
+Subject: [PATCH] vmmon: do not rely on HAVE_GET_KERNEL_NOFAULT
+
+Mainline commit 34737e269803 ("uaccess: add generic
+__{get,put}_kernel_nofault") in 5.18-rc1 removes HAVE_GET_KERNEL_NOFAULT
+macro as all architectures can use get_kernel_nofault() now. Check for
+existence of __get_kernel_nofault() instead and add also a version check in
+case it stops being a macro or is removed in the future.
+---
+ vmmon-only/linux/hostif.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index a21c300..b6326e9 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -2249,7 +2249,8 @@ isVAReadable(VA r) // IN:
+ uint32 dummy;
+ int ret;
+
+-#ifdef HAVE_GET_KERNEL_NOFAULT
++#if defined(HAVE_GET_KERNEL_NOFAULT) || defined(__get_kernel_nofault) || \
++ (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0))
+ ret = get_kernel_nofault(dummy, (void *)r);
+ #else
+ {
diff --git a/vmnet.patch b/vmnet.patch
index 3caab8663774..2d2c41ae72ed 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -195,3 +195,66 @@
if (port->jack.state == FALSE || hubJack == NULL) {
return -EINVAL;
}
+From 409623bd4693afada659af82e823a6291f70797a Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 4 Apr 2022 02:05:17 +0200
+Subject: [PATCH] vmnet: use netif_rx() on newer kernels
+
+In mainline 5.18-rc1, commit baebdf48c360 ("net: dev: Makes sure netif_rx()
+can be invoked in any context.") allows calling netif_rx() from any context
+and commit 2655926aea9b ("net: Remove netif_rx_any_context() and
+netif_rx_ni().") drops netif_rx_ni() as it is no longer needed.
+
+Replace calls of netif_rx_ni() in VNetBridgeReceiveFromVNet() and
+VNetNetIfReceive() by netif_rx() when building against kernel 5.18 and
+newer.
+---
+ vmnet-only/bridge.c | 2 +-
+ vmnet-only/compat_netdevice.h | 9 +++++++++
+ vmnet-only/netif.c | 2 +-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/vmnet-only/bridge.c b/vmnet-only/bridge.c
+index c84f8ee..d6bd3c4 100644
+--- a/vmnet-only/bridge.c
++++ b/vmnet-only/bridge.c
+@@ -691,7 +691,7 @@ VNetBridgeReceiveFromVNet(VNetJack *this, // IN: jack
+ * not do it, or netif_rx_ni() will deadlock on the cli() lock --hpreg
+ */
+
+- netif_rx_ni(clone);
++ compat_netif_rx_ni(clone);
+ # if LOGLEVEL >= 4
+ do_gettimeofday(&vnetTime);
+ # endif
+diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
+index bb5001b..c6cc706 100644
+--- a/vmnet-only/compat_netdevice.h
++++ b/vmnet-only/compat_netdevice.h
+@@ -343,4 +343,13 @@ typedef u32 compat_netdev_features_t;
+ #define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0)
+ #endif
+
++static inline int compat_netif_rx_ni(struct sk_buff *skb)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ return netif_rx(skb);
++#else
++ return netif_rx_ni(skb);
++#endif
++}
++
+ #endif /* __COMPAT_NETDEVICE_H__ */
+diff --git a/vmnet-only/netif.c b/vmnet-only/netif.c
+index 8c3bbf8..35256a0 100644
+--- a/vmnet-only/netif.c
++++ b/vmnet-only/netif.c
+@@ -311,7 +311,7 @@ VNetNetIfReceive(VNetJack *this, // IN: jack
+ /* send to the host interface */
+ skb->dev = netIf->dev;
+ skb->protocol = eth_type_trans(skb, netIf->dev);
+- netif_rx_ni(skb);
++ compat_netif_rx_ni(skb);
+ netIf->stats.rx_packets++;
+
+ return;