diff options
author | Jean-Marc Lenoir | 2023-08-12 15:57:56 +0200 |
---|---|---|
committer | Jean-Marc Lenoir | 2023-08-12 15:57:56 +0200 |
commit | 00c84138457257e47d6abee2e7cb1fd5abb69ef7 (patch) | |
tree | 1deeff0fc2bd0614683b3ecf1c7e47a3718f6625 | |
parent | cfd85f6ffad9af2f56901e3310862043dcd8f832 (diff) | |
download | aur-00c84138457257e47d6abee2e7cb1fd5abb69ef7.tar.gz |
Compatibility with Linux 6.4.10 and 6.5-rc5
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | vmmon.patch | 12 | ||||
-rw-r--r-- | vmnet.patch | 118 |
4 files changed, 65 insertions, 77 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 = 21 + pkgrel = 22 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 = ee4a229c9f442dac34704526590c98eb2f1855eedab5e4cf3c153020dc0fe6e6 - sha256sums = 59e8448ede5804e6f341edc8d28200c9d50d53fc19559a7b2d495cb51a46ecb8 + sha256sums = cd4515560190a2455c6f19eb8d95ed48ba669ae1329c8f4ae67bc5a42ae26508 + sha256sums = 12c50ec5470513438a488472251bcf5850e108b67e9b98a46d52dac45e1ffd9b pkgname = vmware-workstation14 @@ -16,7 +16,7 @@ pkgname=vmware-workstation14 pkgver=14.1.7 _buildver=12989993 _pkgver=${pkgver}_${_buildver} -pkgrel=21 +pkgrel=22 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' - 'ee4a229c9f442dac34704526590c98eb2f1855eedab5e4cf3c153020dc0fe6e6' - '59e8448ede5804e6f341edc8d28200c9d50d53fc19559a7b2d495cb51a46ecb8' + 'cd4515560190a2455c6f19eb8d95ed48ba669ae1329c8f4ae67bc5a42ae26508' + '12c50ec5470513438a488472251bcf5850e108b67e9b98a46d52dac45e1ffd9b' ) options=(!strip emptydirs) diff --git a/vmmon.patch b/vmmon.patch index 2b8f15a4fc65..8530a39ecd90 100644 --- a/vmmon.patch +++ b/vmmon.patch @@ -474,3 +474,15 @@ printk(KERN_ERR "%s: Couldn't verify write to uva 0x%p with size %" FMTSZ"u\n", __func__, p, size); +Patch taken from https://raw.githubusercontent.com/jeffersonchua/linux-6.5.0/main/patch-17.0.2-6.5.0 +--- a/vmmon/include/pgtbl.h ++++ b/vmmon/include/pgtbl.h +@@ -91,7 +91,7 @@ + } else { + pte_t *pte; + +- pte = pte_offset_map(pmd, addr); ++ pte = pte_offset_kernel(pmd, addr); + if (pte_present(*pte) == 0) { + pte_unmap(pte); + return INVALID_MPN; diff --git a/vmnet.patch b/vmnet.patch index 9e5d387ad4f4..38e9a111210a 100644 --- a/vmnet.patch +++ b/vmnet.patch @@ -308,7 +308,7 @@ } } -# Fixing VMWare Player on Linux when using DHCP addresses: https://www.nikhef.nl/~janjust/vmnet/ +Fixing VMWare Player on Linux when using DHCP addresses: https://www.nikhef.nl/~janjust/vmnet/ @@ -973,6 +989,9 @@ userIf = (VNetUserIF *)port->jack.private; hubJack = port->jack.peer; @@ -383,78 +383,41 @@ } e = e->nextEvent; } -From 650fb3abeb82f2b7d3a14f9579a7529d153636b7 Mon Sep 17 00:00:00 2001 -From: Michal Kubecek <mkubecek@suse.cz> -Date: Fri, 7 Oct 2022 12:56:44 +0200 -Subject: [PATCH] vmnet: work around field-spanning write warning (#195) - -While VMware 17.0.1 did work around the field-spanning write warning in -VNetEvent_Send() by wrapping struct VNet_EventHeader into a union, they -neglected to handle the same problem in VNetUserListenerEventHandler() so -that running 17.0.1 on kernel >= 6.1-rc1 still issues - - memcpy: detected field-spanning write (size 28) of single field "&t->event" - -only this time it happens on VM start rather than on module load. Apply the -same workaround as in 17.0.0 branch to avoid the warning. ---- - vmnet-only/vnet.h | 8 ++++++++ - vmnet-only/vnetEvent.c | 2 +- - vmnet-only/vnetUserListener.c | 2 +- - 3 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/vmnet-only/vnet.h b/vmnet-only/vnet.h -index d6691d5c..d5bb5572 100644 ---- a/vmnet-only/vnet.h -+++ b/vmnet-only/vnet.h -@@ -274,6 +274,7 @@ typedef struct VNet_EventHeader { - uint32 eventId; - uint32 classSet; - uint32 type; -+ char payload[]; - } VNet_EventHeader; - #pragma pack(pop) - -@@ -291,6 +292,13 @@ typedef struct VNet_LinkStateEvent { - } VNet_LinkStateEvent; - #pragma pack(pop) - -+static inline void VNet_Event_copy(VNet_EventHeader *dst, -+ const VNet_EventHeader *src) -+{ -+ *dst = *src; -+ memcpy(dst->payload, src->payload, src->size - sizeof(*src)); -+} -+ - /* - *---------------------------------------------------------------------------- - */ -diff --git a/vmnet-only/vnetEvent.c b/vmnet-only/vnetEvent.c -index f1579292..12036070 100644 ---- a/vmnet-only/vnetEvent.c -+++ b/vmnet-only/vnetEvent.c -@@ -401,7 +401,7 @@ VNetEvent_Send(VNetEvent_Sender *s, // IN: a sender - p->nextEvent = s->firstEvent; - s->firstEvent = p; - } -- memcpy(&p->event, e, e->size); -+ VNet_Event_copy(&p->event.header, e); - - /* send event */ - classSet = e->classSet; -diff --git a/vmnet-only/vnetUserListener.c b/vmnet-only/vnetUserListener.c -index 114f3907..e9f51755 100644 ---- a/vmnet-only/vnetUserListener.c -+++ b/vmnet-only/vnetUserListener.c -@@ -226,7 +226,7 @@ VNetUserListenerEventHandler(void *context, // IN: the user listener +--- a/vmnet/vnetUserListener.c +--- b/vmnet/vnetUserListener.c +@@ -42,10 +42,12 @@ + + struct VNetUserListener_EventNode { + VNetUserListener_EventNode *nextEvent; +- VNet_EventHeader event; ++ union { ++ VNet_EventHeader header; ++ VNet_LinkStateEvent lse; ++ } event; + }; + +-#define EVENT_NODE_HEADER_SIZE offsetof(struct VNetUserListener_EventNode, event) + + typedef struct VNetUserListener { + VNetPort port; /* base port/jack */ +@@ -220,7 +222,7 @@ + VNetUserListener_EventNode *t; + + /* allocate and initialize event node */ +- t = kmalloc(EVENT_NODE_HEADER_SIZE + e->size, GFP_ATOMIC); ++ t = kmalloc(sizeof *t, GFP_ATOMIC); + if (t == NULL) { + LOG(0, (KERN_DEBUG "VNetUserListenerEventHandler, out of memory\n")); return; +@@ -299,7 +301,7 @@ + spin_unlock(&userListener->lock); + + /* return data and free event */ +- n = t->event.size; ++ n = t->event.header.size; + if (count < n) { + n = count; } - t->nextEvent = NULL; -- memcpy(&t->event, e, e->size); -+ VNet_Event_copy(&t->event, e); - - /* append event to event list */ - userListener = (VNetUserListener*)context; From 0ca979d4bd06144204d720bb82f0a1e29024f9fa Mon Sep 17 00:00:00 2001 From: Michal Kubecek <mkubecek@suse.cz> Date: Wed, 18 Jan 2023 00:19:52 +0100 @@ -521,3 +484,16 @@ index 197a213..b22cbfb 100644 MODULE_INFO(supported, "external"); +module_init(vmnet_init_module); +module_exit(vmnet_cleanup_module); +Patch inspired from https://github.com/mkubecek/vmware-host-modules/commit/b75cd616cca0a4c9ff22124c4c91d218e64e6205.patch +--- a/vmnet/bridge.c ++++ b/vmnet/bridge.c +@@ -44,6 +44,9 @@ + #include <linux/if_arp.h> + #include <net/tcp.h> + #include <net/ipv6.h> ++#if !defined(SKB_GSO_CB) ++#include <net/gso.h> ++#endif + + #ifdef CONFIG_NET_RADIO + # include <linux/wireless.h> |