diff options
author | Jean-Marc Lenoir | 2022-04-09 15:35:02 +0200 |
---|---|---|
committer | Jean-Marc Lenoir | 2022-04-09 15:35:02 +0200 |
commit | 70e5ad79c923c691cb607c575f9d1cc6681b2466 (patch) | |
tree | 15ebfc31b5d5bab11793d601d356827e2d2113de | |
parent | 7727b6f2688d413a95e93812a84a2debf47fa8f7 (diff) | |
download | aur-70e5ad79c923c691cb607c575f9d1cc6681b2466.tar.gz |
Compatibility with Linux 5.18-rc1
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | vmmon.patch | 28 | ||||
-rw-r--r-- | vmnet.patch | 63 |
4 files changed, 97 insertions, 6 deletions
@@ -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 @@ -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; |