summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2023-08-12 15:58:11 +0200
committerJean-Marc Lenoir2023-08-12 15:58:11 +0200
commit38aefe99bd5b32bc403c948b08df5b444dbbc7ff (patch)
tree24ad09113f2161037db81b1ef1a5b313bcf727f7
parent631830cf370204edf09b1de9fffd48ad7927277c (diff)
downloadaur-38aefe99bd5b32bc403c948b08df5b444dbbc7ff.tar.gz
Compatibility with Linux 6.4.10 and 6.5-rc5
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD6
-rw-r--r--vmmon.patch12
-rw-r--r--vmnet.patch121
4 files changed, 73 insertions, 72 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f6653c57b616..78bc8df9fac5 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = vmware-workstation
pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
pkgver = 17.0.2
- pkgrel = 1
+ pkgrel = 2
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
arch = x86_64
@@ -56,7 +56,7 @@ pkgbase = vmware-workstation
sha256sums = fe1b1be8297f4170406f97dd1f8b385d911faf45afe19cbc0c26b8092b3ddf8d
sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e
sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac
- sha256sums = 1060b5d45caeda5119b220fab4e1ece398af34d75131139a5dc6f74ee06672c3
- sha256sums = 903e4792b559af4b021077f02f117342836cf870fc4b2e9d0aa6f73a026724ac
+ sha256sums = 1209eefaaa7fa9bfc87b12af06a8f250e209a34f84ee5a7747af53cdf43cf48b
+ sha256sums = 2c03cd2aba3ac80e67f565c1a553c4a6ed1db980ff3c40aad1f6187d2332419b
pkgname = vmware-workstation
diff --git a/PKGBUILD b/PKGBUILD
index 2a9e35a3f0e3..31b298ab43b0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -17,7 +17,7 @@ pkgname=vmware-workstation
pkgver=17.0.2
_buildver=21581411
_pkgver=${pkgver}_${_buildver}
-pkgrel=1
+pkgrel=2
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'
@@ -92,8 +92,8 @@ sha256sums=(
'10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e'
'273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac'
- '1060b5d45caeda5119b220fab4e1ece398af34d75131139a5dc6f74ee06672c3'
- '903e4792b559af4b021077f02f117342836cf870fc4b2e9d0aa6f73a026724ac'
+ '1209eefaaa7fa9bfc87b12af06a8f250e209a34f84ee5a7747af53cdf43cf48b'
+ '2c03cd2aba3ac80e67f565c1a553c4a6ed1db980ff3c40aad1f6187d2332419b'
)
options=(!strip emptydirs)
diff --git a/vmmon.patch b/vmmon.patch
index f2e32d6d0270..906c33906d39 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -12,3 +12,15 @@
# Header directory for the running kernel
ifdef LINUXINCLUDE
+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 c70ba1f13296..e32964bdd5e1 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -12,78 +12,54 @@
# Header directory for the running kernel
ifdef LINUXINCLUDE
-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
-@@ -269,6 +269,7 @@ typedef struct VNet_EventHeader {
- uint32 eventId;
- uint32 classSet;
- uint32 type;
-+ char payload[];
- } VNet_EventHeader;
- #pragma pack(pop)
+--- a/vmnet/userif.c
++++ b/vmnet/userif.c
+Fixing VMWare Player on Linux when using DHCP addresses: https://www.nikhef.nl/~janjust/vmnet/
+@@ -1029,6 +1029,9 @@
+ userIf = (VNetUserIF *)port->jack.private;
+ hubJack = port->jack.peer;
-@@ -286,6 +287,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));
-+}
++ /* never send link down events */
++ if (!linkUp) return 0;
+
- /*
- *----------------------------------------------------------------------------
- */
-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;
+ if (port->jack.state == FALSE || hubJack == NULL) {
+ return -EINVAL;
}
-- memcpy(&p->event, e, e->size);
-+ VNet_Event_copy(&p->event.header, e);
+--- 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;
- /* 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
+ /* 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;
- }
- t->nextEvent = NULL;
-- memcpy(&t->event, e, e->size);
-+ VNet_Event_copy(&t->event, e);
+@@ -299,7 +301,7 @@
+ spin_unlock(&userListener->lock);
- /* append event to event list */
- userListener = (VNetUserListener*)context;
+ /* return data and free event */
+- n = t->event.size;
++ n = t->event.header.size;
+ if (count < n) {
+ n = count;
+ }
From 0ca979d4bd06144204d720bb82f0a1e29024f9fa Mon Sep 17 00:00:00 2001
From: Michal Kubecek <mkubecek@suse.cz>
Date: Wed, 18 Jan 2023 00:19:52 +0100
@@ -150,3 +126,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>