summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2023-08-12 15:58:02 +0200
committerJean-Marc Lenoir2023-08-12 15:58:02 +0200
commit63f28a5a80764053ff4ccf13cc011c979bd6c08f (patch)
treec25092024708a8912c459fdc0511055c1f5cba42
parentbc5d14f958ba758c4a9113de337902e173304ece (diff)
downloadaur-63f28a5a80764053ff4ccf13cc011c979bd6c08f.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.patch118
4 files changed, 65 insertions, 77 deletions
diff --git a/.SRCINFO b/.SRCINFO
index bbcccc981873..25e29b08d21e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = vmware-workstation15
pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
pkgver = 15.5.7
- pkgrel = 14
+ pkgrel = 15
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
arch = x86_64
@@ -86,7 +86,7 @@ pkgbase = vmware-workstation15
sha256sums = fe1b1be8297f4170406f97dd1f8b385d911faf45afe19cbc0c26b8092b3ddf8d
sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e
sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac
- sha256sums = 5b7c4ada0218214fa04ccb1f6c8033571f3991a83c5a613692db7a71e48d62c7
- sha256sums = 508d3bc4e130701a64b430a88e8ef9ea6f40e818744b14a84415945ec0eac1d7
+ sha256sums = 359955799da07c7b2d12405daf1b1fd63385504e2ae58f53a755631de629396b
+ sha256sums = ad95610e6516e6d82b6b636371911abaca123e72e35e2712c5e5a2d59920c9f4
pkgname = vmware-workstation15
diff --git a/PKGBUILD b/PKGBUILD
index d1c65a2ce0bf..6620d965e595 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -16,7 +16,7 @@ pkgname=vmware-workstation15
pkgver=15.5.7
_buildver=17171714
_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'
@@ -123,8 +123,8 @@ sha256sums=(
'10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e'
'273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac'
- '5b7c4ada0218214fa04ccb1f6c8033571f3991a83c5a613692db7a71e48d62c7'
- '508d3bc4e130701a64b430a88e8ef9ea6f40e818744b14a84415945ec0eac1d7'
+ '359955799da07c7b2d12405daf1b1fd63385504e2ae58f53a755631de629396b'
+ 'ad95610e6516e6d82b6b636371911abaca123e72e35e2712c5e5a2d59920c9f4'
)
options=(!strip emptydirs)
diff --git a/vmmon.patch b/vmmon.patch
index ecec5748baa1..33efbf177acb 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -298,3 +298,15 @@
/*
* Do not exit thread until we are told to do so.
*/
+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 feb6f624f606..702f6f1d7386 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -176,7 +176,7 @@
kunmap(skb_frag_page(frag));
if (err) {
-# 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/
@@ -985,6 +996,9 @@
userIf = (VNetUserIF *)port->jack.private;
hubJack = port->jack.peer;
@@ -265,78 +265,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;
- }
- 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
@@ -403,3 +366,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>