summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2022-11-19 11:16:46 +0100
committerJean-Marc Lenoir2022-11-19 11:16:46 +0100
commit02502d8bce55affaa1bf69bc7e8623a10a670f56 (patch)
treeb759b1530f550c8cb16382209a8dc79d661c7701
parenta9c5108551bf1add91653c1b12a88fd63dc36523 (diff)
downloadaur-02502d8bce55affaa1bf69bc7e8623a10a670f56.tar.gz
Update to 17.0.0
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD26
-rw-r--r--config10
-rw-r--r--vmmon.patch94
-rw-r--r--vmnet.patch330
5 files changed, 24 insertions, 448 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 24521f6a07d7..9535d045b1ca 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = vmware-workstation
pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
- pkgver = 16.2.4
+ pkgver = 17.0.0
pkgrel = 1
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
@@ -28,7 +28,7 @@ pkgbase = vmware-workstation
options = emptydirs
backup = etc/vmware/config
backup = etc/conf.d/vmware
- source = https://download3.vmware.com/software/WKST-1624-LX/VMware-Workstation-Full-16.2.4-20089737.x86_64.bundle
+ source = https://download3.vmware.com/software/WKST-1700-LX/VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
source = vmware-bootstrap
source = vmware-vix-bootstrap
source = config
@@ -43,10 +43,10 @@ pkgbase = vmware-workstation
source = Makefile
source = vmmon.patch
source = vmnet.patch
- sha256sums = 2e46708db46630edc96cdb11514d5e338f5300c46f51a90132e9a4cd11c3f3c0
+ sha256sums = 9014e87066f5b60e62f9dbd698e68f7cf507c6b59c5fcfe86de2aa44647e9910
sha256sums = 12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e
sha256sums = da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141
- sha256sums = bfd2aa7d85d9fd029b8bc59072d5102458a21a9b03b1c835ac4901e0787c09f5
+ sha256sums = a692c3bd724b16504e4b70721e0bf31eabfe8e26811161b2ce23cde99dcbfd1a
sha256sums = 48d203450db426e8780f3696a2cf85ee08db004e93f8aca50a9aa24129b1e839
sha256sums = b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f
sha256sums = 9b4fbe0ba83f761a2eb9ecd05d48428f8b0a5b3abd8404ccbd928408e682f02b
@@ -56,7 +56,7 @@ pkgbase = vmware-workstation
sha256sums = fe1b1be8297f4170406f97dd1f8b385d911faf45afe19cbc0c26b8092b3ddf8d
sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e
sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac
- sha256sums = 31ed2d3766d3f3bd3b23222f67bcd39ff8edbbe8ff13fbe7b1fa565c8ed61144
- sha256sums = 755ceab482df270eeac783228098ccb9ea0e1967c60891405be7730ee6123075
+ sha256sums = 1060b5d45caeda5119b220fab4e1ece398af34d75131139a5dc6f74ee06672c3
+ sha256sums = 7c3b6a7871b19e31fafdcc2631751dd9569196740d8e7c2026653d155c0c8da0
pkgname = vmware-workstation
diff --git a/PKGBUILD b/PKGBUILD
index c5f295aea09d..cb8928ef4ef0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -14,8 +14,8 @@
#PKGEXT=.pkg.tar
pkgname=vmware-workstation
-pkgver=16.2.4
-_buildver=20089737
+pkgver=17.0.0
+_buildver=20800274
_pkgver=${pkgver}_${_buildver}
pkgrel=1
pkgdesc='The industry standard for running multiple operating systems as virtual machines on a single Linux PC.'
@@ -76,11 +76,11 @@ source=(
'vmnet.patch'
)
sha256sums=(
- '2e46708db46630edc96cdb11514d5e338f5300c46f51a90132e9a4cd11c3f3c0'
+ '9014e87066f5b60e62f9dbd698e68f7cf507c6b59c5fcfe86de2aa44647e9910'
'12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e'
'da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141'
- 'bfd2aa7d85d9fd029b8bc59072d5102458a21a9b03b1c835ac4901e0787c09f5'
+ 'a692c3bd724b16504e4b70721e0bf31eabfe8e26811161b2ce23cde99dcbfd1a'
'48d203450db426e8780f3696a2cf85ee08db004e93f8aca50a9aa24129b1e839'
'b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f'
@@ -92,8 +92,8 @@ sha256sums=(
'10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e'
'273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac'
- '31ed2d3766d3f3bd3b23222f67bcd39ff8edbbe8ff13fbe7b1fa565c8ed61144'
- '755ceab482df270eeac783228098ccb9ea0e1967c60891405be7730ee6123075'
+ '1060b5d45caeda5119b220fab4e1ece398af34d75131139a5dc6f74ee06672c3'
+ '7c3b6a7871b19e31fafdcc2631751dd9569196740d8e7c2026653d155c0c8da0'
)
options=(!strip emptydirs)
@@ -109,8 +109,8 @@ _isovirtualprinterimages=(Linux Windows)
if [ -n "$_enable_macOS_guests" ]; then
-_vmware_fusion_ver=12.2.4
-_vmware_fusion_buildver=20071091
+_vmware_fusion_ver=13.0.0
+_vmware_fusion_buildver=20802013
_vmware_fusion_ver_full=${_vmware_fusion_ver}_${_vmware_fusion_buildver}
# List of VMware Fusion versions: https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/
@@ -122,12 +122,12 @@ makedepends+=(
)
source+=(
- "https://download3.vmware.com/software/FUS-${_vmware_fusion_ver//./}/VMware-Fusion-${_vmware_fusion_ver_full/_/-}_x86.dmg"
+ "https://download3.vmware.com/software/FUS-${_vmware_fusion_ver//./}/VMware-Fusion-${_vmware_fusion_ver_full/_/-}_universal.dmg"
"unlocker.py"
"efi-patches.txt"
)
sha256sums+=(
- '0b0516f4d5f70e759ae08a40d2e14f487c0b66d84ee467e38972ad013e1f6c7f'
+ '40bb9fbd4b2a18b48138a7fb3285d89187d50caab10506cff81b367b6edc858d'
'8a61e03d0edbbf60c1c84a43aa87a6e950f82d2c71b968888f019345c2f684f3'
'392c1effcdec516000e9f8ffc97f2586524d8953d3e7d6f2c5f93f2acd809d91'
)
@@ -168,8 +168,8 @@ prepare() {
--extract "$extracted_dir"
if [ -n "$_enable_macOS_guests" ]; then
- dmg2img -s VMware-Fusion-${_vmware_fusion_ver_full/_/-}_x86.dmg VMware-Fusion-${_vmware_fusion_ver_full/_/-}_x86.iso
- 7z e -y VMware-Fusion-${_vmware_fusion_ver_full/_/-}_x86.iso VMware\ Fusion/VMware\ Fusion.app/Contents/Library/isoimages/\* -o"fusion-isoimages" > /dev/null 2>&1 || true
+ dmg2img -s VMware-Fusion-${_vmware_fusion_ver_full/_/-}_universal.dmg VMware-Fusion-${_vmware_fusion_ver_full/_/-}.iso
+ 7z e -y VMware-Fusion-${_vmware_fusion_ver_full/_/-}.iso VMware\ Fusion/VMware\ Fusion.app/Contents/Library/isoimages/\* -o"fusion-isoimages" > /dev/null 2>&1 || true
sed -i -e "s|/usr/lib/vmware/|${pkgdir}/usr/lib/vmware/|" "$srcdir/unlocker.py"
fi
@@ -219,7 +219,7 @@ package() {
"$pkgdir/usr/lib/vmware/setup"
cp -r \
- vmware-vix-lib-Workstation1600/lib/Workstation-16.0.0 \
+ vmware-vix-lib-Workstation1700/lib/Workstation-17.0.0 \
vmware-vix-core/{lib/*,vixwrapper-config.txt} \
"$pkgdir/usr/lib/vmware-vix"
diff --git a/config b/config
index c33afae3fbb8..93f010522f70 100644
--- a/config
+++ b/config
@@ -1,9 +1,9 @@
.encoding = "UTF-8"
-product.name = "VMware Player"
-product.version = "16.0.0"
-product.buildNumber = "16894299"
-workstation.product.version = "16.0.0"
-player.product.version = "16.0.0"
+product.name = "VMware Workstation"
+product.version = "17.0.0"
+product.buildNumber = "20800274"
+workstation.product.version = "17.0.0"
+player.product.version = "17.0.0"
vix.config.version = "1"
bindir = "/usr/bin"
libdir = "/usr/lib/vmware"
diff --git a/vmmon.patch b/vmmon.patch
index 167c16fdcfdd..f2e32d6d0270 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -12,97 +12,3 @@
# Header directory for the running kernel
ifdef LINUXINCLUDE
-From 9a6a17fe0bc6d1ab9e0e0dfa8d587b12a21cd49e Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Sun, 17 Oct 2021 17:06:26 +0200
-Subject: [PATCH] modules: include <linux/stdarg.h> when available
-
-Workstation/Player code changes between 16.1.2 and 16.2.0 added some
-includes of <stdarg.h> which is interpreted as regular (userspace) header
-file in /usr/include. Shortly before that, mainline commit c0891ac15f04
-("isystem: ship and use stdarg.h") added minimalistic kernel version of
-stdarg.h to avoid including userspace headers from kernel code. As the
-kernel version is sometimes included via other header files, build against
-5.15 kernel results in a lot of warnings (about redefined va_* macros).
-
-Include <stdarg.h> when building against kernel < 5.15 and <linux/stdarg.h>
-when building against kernel >= 5.15.
----
- vmmon-only/include/vm_assert.h | 4 ++++
- vmnet-only/vm_assert.h | 4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/vmmon-only/include/vm_assert.h b/vmmon-only/include/vm_assert.h
-index 4a69dcc..2817a08 100644
---- a/vmmon-only/include/vm_assert.h
-+++ b/vmmon-only/include/vm_assert.h
-@@ -40,7 +40,11 @@
-
- // XXX not necessary except some places include vm_assert.h improperly
- #include "vm_basic_types.h"
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
- #include <stdarg.h>
-+#else
-+#include <linux/stdarg.h>
-+#endif
-
- #ifdef __cplusplus
- extern "C" {
-From 4232f780eb114f22498f3274eaeef81d8c63f2ab Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Tue, 9 Nov 2021 09:01:57 +0100
-Subject: [PATCH] modules: fix stddef.h include
-
-After mainline commit 04e85bbf71c9 ("isystem: delete global -isystem
-compile option") in 5.16-rc1, vm_basic_types.h in both vmmon and vmnet
-does not find (userspace) stddef.h any more. As it should not include this
-header anyway, fix the include directives to include stddef.h from kernel.
-
-Kernel version of stddef.h has been available since the beginning of git so
-that it is safe to include it regardless of kernel version.
----
- vmmon-only/include/vm_basic_defs.h | 2 +-
- vmnet-only/vm_basic_defs.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/vmmon-only/include/vm_basic_defs.h b/vmmon-only/include/vm_basic_defs.h
-index 0ec30b3..b920e2d 100644
---- a/vmmon-only/include/vm_basic_defs.h
-+++ b/vmmon-only/include/vm_basic_defs.h
-@@ -51,7 +51,7 @@
- * C90 7.17, C99 7.19, C11 7.19
- */
- #if !defined(VMKERNEL)
--# include <stddef.h>
-+# include <linux/stddef.h>
- #else
- /*
- * Vmkernel's bogus __FreeBSD__ value causes gcc <stddef.h> to break.
-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
-@@ -2356,7 +2356,8 @@ isVAReadable(VA r) // IN:
- int ret;
-
- r = APICR_TO_ADDR(r, APICR_VERSION);
--#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 83e99fc4ce72..60fc5a12d86f 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -12,333 +12,3 @@
# Header directory for the running kernel
ifdef LINUXINCLUDE
---- a/vmnet/userif.c
-+++ b/vmnet/userif.c
-# Fixing VMWare Player on Linux when using DHCP addresses: https://www.nikhef.nl/~janjust/vmnet/
-@@ -998,6 +998,9 @@
- userIf = (VNetUserIF *)port->jack.private;
- hubJack = port->jack.peer;
-
-+ /* never send link down events */
-+ if (!linkUp) return 0;
-+
- if (port->jack.state == FALSE || hubJack == NULL) {
- return -EINVAL;
- }
-From 9a6a17fe0bc6d1ab9e0e0dfa8d587b12a21cd49e Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Sun, 17 Oct 2021 17:06:26 +0200
-Subject: [PATCH] modules: include <linux/stdarg.h> when available
-
-Workstation/Player code changes between 16.1.2 and 16.2.0 added some
-includes of <stdarg.h> which is interpreted as regular (userspace) header
-file in /usr/include. Shortly before that, mainline commit c0891ac15f04
-("isystem: ship and use stdarg.h") added minimalistic kernel version of
-stdarg.h to avoid including userspace headers from kernel code. As the
-kernel version is sometimes included via other header files, build against
-5.15 kernel results in a lot of warnings (about redefined va_* macros).
-
-Include <stdarg.h> when building against kernel < 5.15 and <linux/stdarg.h>
-when building against kernel >= 5.15.
----
- vmmon-only/include/vm_assert.h | 4 ++++
- vmnet-only/vm_assert.h | 4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/vmnet-only/vm_assert.h b/vmnet-only/vm_assert.h
-index cf34446..430c74d 100644
---- a/vmnet-only/vm_assert.h
-+++ b/vmnet-only/vm_assert.h
-@@ -40,7 +40,11 @@
-
- // XXX not necessary except some places include vm_assert.h improperly
- #include "vm_basic_types.h"
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
- #include <stdarg.h>
-+#else
-+#include <linux/stdarg.h>
-+#endif
-
- #ifdef __cplusplus
- extern "C" {
-From 4232f780eb114f22498f3274eaeef81d8c63f2ab Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Tue, 9 Nov 2021 09:01:57 +0100
-Subject: [PATCH] modules: fix stddef.h include
-
-After mainline commit 04e85bbf71c9 ("isystem: delete global -isystem
-compile option") in 5.16-rc1, vm_basic_types.h in both vmmon and vmnet
-does not find (userspace) stddef.h any more. As it should not include this
-header anyway, fix the include directives to include stddef.h from kernel.
-
-Kernel version of stddef.h has been available since the beginning of git so
-that it is safe to include it regardless of kernel version.
----
- vmmon-only/include/vm_basic_defs.h | 2 +-
- vmnet-only/vm_basic_defs.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/vmnet-only/vm_basic_defs.h b/vmnet-only/vm_basic_defs.h
-index 0ec30b3..b920e2d 100644
---- a/vmnet-only/vm_basic_defs.h
-+++ b/vmnet-only/vm_basic_defs.h
-@@ -51,7 +51,7 @@
- * C90 7.17, C99 7.19, C11 7.19
- */
- #if !defined(VMKERNEL)
--# include <stddef.h>
-+# include <linux/stddef.h>
- #else
- /*
- * Vmkernel's bogus __FreeBSD__ value causes gcc <stddef.h> to break.
-From 4af1a71978962f9805fe2e7e6ceb05c24f42c7f0 Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Tue, 11 Jan 2022 17:25:45 +0100
-Subject: [PATCH] vmnet: use accessors for net_device::dev_addr
-
-Mainline commit adeef3e32146 ("net: constify netdev->dev_addr") in 5.17-rc1
-makes dev_addr member of struct net_device const but accessors should be
-used to modify it since 5.15 to make sure rbtree with hardware address list
-is updated properly.
-
-Use dev_addr_set() and __dev_addr_set() in VNetNetifSetMAC() and
-VNetNetIf_Create(). For kernels before 5.15 provide our own version of the
-accessors. As SMAC_SetMac() only reads dev_addr, constify the corresponding
-argument.
----
- vmnet-only/netif.c | 18 +++++++++++++++---
- vmnet-only/smac.c | 2 +-
- vmnet-only/smac.h | 2 +-
- 3 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/vmnet-only/netif.c b/vmnet-only/netif.c
-index c70f7f4..8c3bbf8 100644
---- a/vmnet-only/netif.c
-+++ b/vmnet-only/netif.c
-@@ -44,7 +44,6 @@
- #include "compat_netdevice.h"
- #include "vmnetInt.h"
-
--
- /*
- * Default min MTU value as defined by kernel versions >= 4.10.0.
- * Use the same value for earlier versions of the kernel which do not
-@@ -86,6 +85,19 @@ static int VNetNetIfProcRead(char *page, char **start, off_t off,
- static int VNetNetifChangeMtu(struct net_device *dev, int new_mtu);
- #endif
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
-+static void
-+__dev_addr_set(struct net_device *dev, const void *addr, size_t len)
-+{
-+ memcpy(dev->dev_addr, addr, len);
-+}
-+
-+static void dev_addr_set(struct net_device *dev, const u8 *addr)
-+{
-+ __dev_addr_set(dev, addr, dev->addr_len);
-+}
-+#endif
-+
-
- /*
- *----------------------------------------------------------------------
-@@ -253,7 +265,7 @@ VNetNetIf_Create(char *devName, // IN:
-
- memset(&netIf->stats, 0, sizeof netIf->stats);
-
-- memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr);
-+ __dev_addr_set(dev, netIf->port.paddr, sizeof(netIf->port.paddr));
-
- if (register_netdev(dev) != 0) {
- LOG(0, (KERN_NOTICE "%s: could not register network device\n",
-@@ -532,7 +544,7 @@ VNetNetifSetMAC(struct net_device *dev, // IN:
- return -EINVAL;
- }
- memcpy(netIf->port.paddr, addr->sa_data, dev->addr_len);
-- memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
-+ dev_addr_set(dev, addr->sa_data);
- return 0;
- }
-
-diff --git a/vmnet-only/smac.c b/vmnet-only/smac.c
-index f18be8a..7f38e7a 100644
---- a/vmnet-only/smac.c
-+++ b/vmnet-only/smac.c
-@@ -4116,7 +4116,7 @@ SMAC_InitState(SMACState **ptr) // OUT: pointer to alloced/inited state
-
- void SMACINT
- SMAC_SetMac(SMACState *state, // IN: state to update
-- uint8 *mac) // IN: pointer to host adapter's MAC
-+ const uint8 *mac) // IN: pointer to host adapter's MAC
- {
- VNETKdPrintCall(("SMAC_SetMac"));
- ASSERT(state);
-diff --git a/vmnet-only/smac.h b/vmnet-only/smac.h
-index c8df9d2..f03fd3f 100644
---- a/vmnet-only/smac.h
-+++ b/vmnet-only/smac.h
-@@ -72,7 +72,7 @@ Bool BridgeIPv4MatchAddrMAC(const ULONG ipAddr, const uint8 *mac);
- void SMACINT
- SMAC_InitState(struct SMACState **ptr); // IN: state to alloc/init
- void SMACINT
--SMAC_SetMac(struct SMACState *state, uint8 *mac); // IN: state, and host MAC
-+SMAC_SetMac(struct SMACState *state, const uint8 *mac); // IN: state, and host MAC
- void SMACINT
- SMAC_CleanupState(struct SMACState **ptr); // IN: state to cleanup/dealloc
-
-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
-@@ -196,4 +196,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
-@@ -357,7 +357,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;
-From e02b540ab528917c1afd7848ef64ca146a634994 Mon Sep 17 00:00:00 2001
-From: Michal Kubecek <mkubecek@suse.cz>
-Date: Tue, 31 May 2022 23:29:42 +0200
-Subject: [PATCH] vmnet: open code csum_and_copy_to_user on kernel >= 5.19
-
-Mainline commit 6308499b5e99 ("net: unexport csum_and_copy_{from,to}_user")
-in 5.19-rc1 unexports csum_and_copy_to_user as no in-tree module is using
-it. A clean solution would probably be rewriting the code to use iovec
-iterator as csum_and_copy_to_iter() is still exported (or perhaps
-skb_copy_and_csum_datagram() might be used instead). Anything like this
-would be way too intrusive so it would have to wait for VMware developers.
-
-For now, use the simplest solution and replace the calls to
-csum_and_copy_to_user() on 5.19 and newer with open coded implementation.
-As the optimized x86 version uses csum_partial_copy_generic() which is not
-exported on x86_64 either, copy the generic one from include/net/checksum.h
-instead. This will be less efficient but hopefully the performace hit will
-not be noticeable.
----
- vmnet-only/userif.c | 45 +++++++++++++++++++++++++++++++--------------
- 1 file changed, 31 insertions(+), 14 deletions(-)
-
-diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
-index e99c436..2c5a24a 100644
---- a/vmnet-only/userif.c
-+++ b/vmnet-only/userif.c
-@@ -87,6 +87,33 @@ extern unsigned int vnet_max_qlen;
- # define skb_frag_off(frag) (frag)->page_offset
- #endif
-
-+#if COMPAT_LINUX_VERSION_CHECK_LT(5, 10, 0)
-+static inline unsigned int
-+compat_csum_and_copy_to_user(const void *src, void __user *dst, int len,
-+ int *err)
-+{
-+ return csum_and_copy_to_user(src, dst, len, 0, err);
-+}
-+#else
-+static inline unsigned int
-+compat_csum_and_copy_to_user(const void *src, void __user *dst, int len,
-+ int *err)
-+{
-+ unsigned int csum;
-+
-+#if COMPAT_LINUX_VERSION_CHECK_LT(5, 19, 0)
-+ csum = csum_and_copy_to_user(src, dst, len);
-+#else
-+ csum = csum_partial(src, len, ~0U);
-+ if (copy_to_user(dst, src, len))
-+ csum = 0;
-+#endif /* 5.19 */
-+
-+ *err = (csum == 0 ? -EFAULT : 0);
-+ return csum;
-+}
-+#endif /* 5.10 */
-+
- /*
- *-----------------------------------------------------------------------------
- *
-@@ -561,12 +588,7 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
- return -EINVAL;
- }
-
--#if COMPAT_LINUX_VERSION_CHECK_LT(5, 10, 0)
-- csum = csum_and_copy_to_user(skb->data + offset, curr, len, 0, &err);
--#else
-- csum = csum_and_copy_to_user(skb->data + offset, curr, len);
-- err = (csum == 0) ? -EFAULT : 0;
--#endif
-+ csum = compat_csum_and_copy_to_user(skb->data + offset, curr, len, &err);
- if (err) {
- return err;
- }
-@@ -580,14 +602,9 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
- const void *vaddr;
-
- vaddr = kmap(skb_frag_page(frag));
--#if COMPAT_LINUX_VERSION_CHECK_LT(5, 10, 0)
-- tmpCsum = csum_and_copy_to_user(vaddr + skb_frag_off(frag),
-- curr, skb_frag_size(frag), 0, &err);
--#else
-- tmpCsum = csum_and_copy_to_user(vaddr + skb_frag_off(frag),
-- curr, skb_frag_size(frag));
-- err = (tmpCsum == 0) ? -EFAULT : 0;
--#endif
-+ tmpCsum = compat_csum_and_copy_to_user(vaddr + skb_frag_off(frag),
-+ curr, skb_frag_size(frag),
-+ &err);
- kunmap(skb_frag_page(frag));
-
- if (err) {