diff options
author | Jean-Marc Lenoir | 2024-03-01 18:47:42 +0100 |
---|---|---|
committer | Jean-Marc Lenoir | 2024-03-01 18:47:42 +0100 |
commit | 605e2d343fb6348e55580db5bbd68786132905d7 (patch) | |
tree | 39e96b03840740cd2d35f4040ec486bd81595b71 | |
parent | 7b53689ca1a52b6b415a18f262a9b4b787c4feec (diff) | |
download | aur-605e2d343fb6348e55580db5bbd68786132905d7.tar.gz |
Fix compatibility with Linux 6.8-rc6
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | vmmon.patch | 175 | ||||
-rw-r--r-- | vmnet.patch | 116 |
4 files changed, 290 insertions, 13 deletions
@@ -1,7 +1,7 @@ pkgbase = vmware-workstation16 pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC. pkgver = 16.2.5 - pkgrel = 8 + pkgrel = 9 url = https://www.vmware.com/products/workstation-for-linux.html install = vmware-workstation.install arch = x86_64 @@ -58,7 +58,7 @@ pkgbase = vmware-workstation16 sha256sums = fe1b1be8297f4170406f97dd1f8b385d911faf45afe19cbc0c26b8092b3ddf8d sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac - sha256sums = 88ce0aec3ea30a0e4e4983c40564cb1169aaa1d615c0b240e05807eeb249cef9 - sha256sums = 26fd4e4c73dbf71fd3ff5be0dab69b863b6c64caf78fc41cc63b459fd50367ee + sha256sums = 4935cd4cf86f24b6db67cb6b746bd910a4e7d7df6a4c6fd0a4e80bf9c35fe546 + sha256sums = d88c11825f4310c91c36dedf85945850b61265fd5c9bf1a87579ff9fc30ffcf7 pkgname = vmware-workstation16 @@ -16,7 +16,7 @@ pkgname=vmware-workstation16 pkgver=16.2.5 _buildver=20904516 _pkgver=${pkgver}_${_buildver} -pkgrel=8 +pkgrel=9 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' @@ -93,8 +93,8 @@ sha256sums=( '10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e' '273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac' - '88ce0aec3ea30a0e4e4983c40564cb1169aaa1d615c0b240e05807eeb249cef9' - '26fd4e4c73dbf71fd3ff5be0dab69b863b6c64caf78fc41cc63b459fd50367ee' + '4935cd4cf86f24b6db67cb6b746bd910a4e7d7df6a4c6fd0a4e80bf9c35fe546' + 'd88c11825f4310c91c36dedf85945850b61265fd5c9bf1a87579ff9fc30ffcf7' ) options=(!strip emptydirs) diff --git a/vmmon.patch b/vmmon.patch index d68172f568f5..eb726dea4396 100644 --- a/vmmon.patch +++ b/vmmon.patch @@ -1,6 +1,6 @@ --- a/vmmon/Makefile +++ b/vmmon/Makefile -@@ -43,7 +43,11 @@ INCLUDE += -I$(SRCROOT)/shared +@@ -43,7 +43,11 @@ endif @@ -54,6 +54,50 @@ # include <stddef.h> #else /* +--- a/vmmon/linux/driver.c ++++ b/vmmon/linux/driver.c +@@ -256,7 +256,7 @@ + /* + *---------------------------------------------------------------------- + * +- * init_module -- ++ * LinuxDriverInit -- + * + * linux module entry point. Called by /sbin/insmod command + * +@@ -268,7 +268,7 @@ + */ + + int +-init_module(void) ++LinuxDriverInit(void) + { + int retval; + +@@ -328,7 +328,7 @@ + /* + *---------------------------------------------------------------------- + * +- * cleanup_module -- ++ * LinuxDriverExit -- + * + * Called by /sbin/rmmod + * +@@ -337,7 +337,7 @@ + */ + + void +-cleanup_module(void) ++LinuxDriverExit(void) + { + /* + * XXX smp race? +@@ -1450,3 +1450,5 @@ + * by default (i.e., neither mkinitrd nor modprobe will accept it). + */ + MODULE_INFO(supported, "external"); ++module_init(LinuxDriverInit); ++module_exit(LinuxDriverExit); --- a/vmmon/linux/hostif.c +++ b/vmmon/linux/hostif.c @@ -2356,7 +2332,11 @@ @@ -163,3 +207,132 @@ index 3f43c62..7eaa49a 100644 +#endif /* COMPAT_LINUX_VERSION_CHECK_LT(6, 5, 0) */ + #endif /* __PGTBL_H__ */ +From 2c6d66f3f1947384038b765c897b102ecdb18298 Mon Sep 17 00:00:00 2001 +From: Michal Kubecek <mkubecek@suse.cz> +Date: Fri, 12 Jan 2024 08:30:33 +0100 +Subject: [PATCH] modules: fix build with -Wmissing-prototypes + +Mainline commit 0fcb70851fbf ("Makefile.extrawarn: turn on +missing-prototypes globally") in 6.8-rc1 enables -Wmissing-prototypes +globally, revealing a lot of unclean code and also some actual problems. +This is also the case in vmmon and vmnet modules. + +Most of them are addressed by making functions used only within one file +static. The missing prototype of random_get_entropy_fallback() is handled +by including <linux/timex.h> rather than <asm/timex.h>. + +Finally, there are four functions in vmnet module which are actually used +in multiple files but instead of proper declarations, their prototype is +duplicated in vmnet-only/driver.c, risking that the two copies won't match +(which actually happened in one case). The cleanest solution would be +creating separate header files for them (bridge.h, netif.h, userif.h and +vnetUserListener.h) and including them in the respective source file and +driver.c. As the developers already handle similar cases by simply putting +the declarations into vnetInt.h, let us do the same to keep things simple. +--- + vmmon-only/common/task.c | 2 +- + vmmon-only/common/vmx86.c | 6 +++--- + vmmon-only/linux/driver.c | 4 ++-- + vmmon-only/linux/hostif.c | 6 +++--- + vmnet-only/bridge.c | 2 +- + vmnet-only/driver.c | 16 ++-------------- + vmnet-only/vnetInt.h | 7 +++++++ + 7 files changed, 19 insertions(+), 24 deletions(-) + +diff --git a/vmmon-only/common/task.c b/vmmon-only/common/task.c +index 5d34cf4d..f3752069 100644 +--- a/vmmon-only/common/task.c ++++ b/vmmon-only/common/task.c +@@ -544,7 +544,7 @@ Task_Terminate(void) + *----------------------------------------------------------------------------- + */ + +-Selector ++static Selector + TaskGetFlatWriteableDataSegment(void) + { + DTR hostGDTR; +diff --git a/vmmon-only/common/vmx86.c b/vmmon-only/common/vmx86.c +index 86e52fb4..cf64b123 100644 +--- a/vmmon-only/common/vmx86.c ++++ b/vmmon-only/common/vmx86.c +@@ -53,7 +53,7 @@ + #include "x86svm.h" + #include "x86cpuid_asm.h" + #if defined(__linux__) +-#include <asm/timex.h> ++#include <linux/timex.h> + #endif + #include "perfctr.h" + #include "x86vtinstr.h" +@@ -699,7 +699,7 @@ Vmx86FreeCrossPages(VMDriver *vm) + *----------------------------------------------------------------------------- + */ + +-void ++static void + Vmx86FreeVMDriver(VMDriver *vm) + { + Vmx86_Free(vm->ptRootMpns); +@@ -732,7 +732,7 @@ Vmx86FreeVMDriver(VMDriver *vm) + *----------------------------------------------------------------------------- + */ + +-VMDriver * ++static VMDriver * + Vmx86AllocVMDriver(uint32 numVCPUs) + { + VMDriver *vm = Vmx86_Calloc(1, sizeof *vm, TRUE); +diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c +index 3d8b7228..ab8e2dc4 100644 +--- a/vmmon-only/linux/driver.c ++++ b/vmmon-only/linux/driver.c +@@ -267,7 +267,7 @@ LinuxDriverInitTSCkHz(void) + *---------------------------------------------------------------------- + */ + +-int ++static int + LinuxDriverInit(void) + { + int retval; +@@ -336,7 +336,7 @@ LinuxDriverInit(void) + *---------------------------------------------------------------------- + */ + +-void ++static void + LinuxDriverExit(void) + { + /* +diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c +index 5d08f33a..c1e6c671 100644 +--- a/vmmon-only/linux/hostif.c ++++ b/vmmon-only/linux/hostif.c +@@ -2944,7 +2944,7 @@ HostIF_CallOnEachCPU(void (*func)(void*), // IN: function to call + *----------------------------------------------------------------------------- + */ + +-Bool ++static Bool + HostIFCheckTrackedMPN(VMDriver *vm, // IN: The VM instance + MPN mpn) // IN: The MPN + { +@@ -3064,7 +3064,7 @@ HostIF_ReadPhysical(VMDriver *vm, // IN: The VM instance + *---------------------------------------------------------------------- + */ + +-int ++static int + HostIFWritePhysicalWork(MA ma, // MA to be written to + VA64 addr, // src data to write + Bool kernelBuffer, // is the buffer in kernel space? +@@ -3223,7 +3223,7 @@ HostIF_GetCurrentPCPU(void) + *---------------------------------------------------------------------- + */ + +-int ++static int + HostIFStartTimer(Bool rateChanged, //IN: Did rate change? + unsigned int rate) //IN: current clock rate + { diff --git a/vmnet.patch b/vmnet.patch index 77187ec0aa50..cd2ec2befb41 100644 --- a/vmnet.patch +++ b/vmnet.patch @@ -1,6 +1,6 @@ --- a/vmnet/Makefile +++ b/vmnet/Makefile -@@ -43,7 +43,11 @@ INCLUDE += -I$(SRCROOT)/shared +@@ -43,7 +43,11 @@ endif @@ -46,7 +46,7 @@ # endif --- a/vmnet/driver.c +++ b/vmnet/driver.c -@@ -279,7 +279,7 @@ VNetRemovePortFromList(const VNetPort *port) // IN: port to remove from list +@@ -279,7 +279,7 @@ /* *---------------------------------------------------------------------- * @@ -55,7 +55,7 @@ * * linux module entry point. Called by /sbin/insmod command. * Initializes module and Registers this driver for a -@@ -296,7 +296,7 @@ VNetRemovePortFromList(const VNetPort *port) // IN: port to remove from list +@@ -296,7 +296,7 @@ */ int @@ -64,7 +64,7 @@ { int retval; -@@ -358,7 +358,7 @@ init_module(void) +@@ -358,7 +358,7 @@ /* *---------------------------------------------------------------------- * @@ -73,7 +73,7 @@ * * Called by /sbin/rmmod. Unregisters this driver for a * vnet major #, and deinitializes the modules. The 64-bit -@@ -375,7 +375,7 @@ init_module(void) +@@ -375,7 +375,7 @@ */ void @@ -82,7 +82,7 @@ { unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet"); VNetProtoUnregister(); -@@ -1701,3 +1701,5 @@ MODULE_LICENSE("GPL v2"); +@@ -1701,3 +1701,5 @@ * by default (i.e., neither mkinitrd nor modprobe will accept it). */ MODULE_INFO(supported, "external"); @@ -371,3 +371,107 @@ Fixing VMWare Player on Linux when using DHCP addresses: https://www.nikhef.nl/~ if (count < n) { n = count; } +From 2c6d66f3f1947384038b765c897b102ecdb18298 Mon Sep 17 00:00:00 2001 +From: Michal Kubecek <mkubecek@suse.cz> +Date: Fri, 12 Jan 2024 08:30:33 +0100 +Subject: [PATCH] modules: fix build with -Wmissing-prototypes + +Mainline commit 0fcb70851fbf ("Makefile.extrawarn: turn on +missing-prototypes globally") in 6.8-rc1 enables -Wmissing-prototypes +globally, revealing a lot of unclean code and also some actual problems. +This is also the case in vmmon and vmnet modules. + +Most of them are addressed by making functions used only within one file +static. The missing prototype of random_get_entropy_fallback() is handled +by including <linux/timex.h> rather than <asm/timex.h>. + +Finally, there are four functions in vmnet module which are actually used +in multiple files but instead of proper declarations, their prototype is +duplicated in vmnet-only/driver.c, risking that the two copies won't match +(which actually happened in one case). The cleanest solution would be +creating separate header files for them (bridge.h, netif.h, userif.h and +vnetUserListener.h) and including them in the respective source file and +driver.c. As the developers already handle similar cases by simply putting +the declarations into vnetInt.h, let us do the same to keep things simple. +--- + vmmon-only/common/task.c | 2 +- + vmmon-only/common/vmx86.c | 6 +++--- + vmmon-only/linux/driver.c | 4 ++-- + vmmon-only/linux/hostif.c | 6 +++--- + vmnet-only/bridge.c | 2 +- + vmnet-only/driver.c | 16 ++-------------- + vmnet-only/vnetInt.h | 7 +++++++ + 7 files changed, 19 insertions(+), 24 deletions(-) + +diff --git a/vmnet-only/bridge.c b/vmnet-only/bridge.c +index b604a25d..4c139570 100644 +--- a/vmnet-only/bridge.c ++++ b/vmnet-only/bridge.c +@@ -1405,7 +1405,7 @@ VNetBridgeComputeHeaderPos(struct sk_buff *skb) // IN: buffer to examine + *---------------------------------------------------------------------- + */ + +-void ++static void + VNetBridgeSendLargePacket(struct sk_buff *skb, // IN: packet to split + VNetBridge *bridge) // IN: bridge + { +diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c +index f314ff2e..fe5923d8 100644 +--- a/vmnet-only/driver.c ++++ b/vmnet-only/driver.c +@@ -50,18 +50,6 @@ + + #include "vmnetInt.h" + +-/* +- * Initialization and creation routines from other files. +- * Putting them here reduces the need for so many header files. +- */ +- +-extern int VNetUserIf_Create(VNetPort **ret); +-extern int VNetNetIf_Create(char *devName, VNetPort **ret, int hubNum); +-extern int VNetBridge_Create(char *devName, uint32 flags, VNetJack *hubJack, +- VNetPort **ret); +-extern int VNetUserListener_Create(uint32 classMask, VNetJack *hubJack, VNetPort **ret); +- +- + /* + * Structure for cycle detection of host interfaces. This + * struct is only used by VNetCycleDetectIf(). +@@ -295,7 +283,7 @@ VNetRemovePortFromList(const VNetPort *port) // IN: port to remove from list + *---------------------------------------------------------------------- + */ + +-int ++static int + LinuxDriverInit(void) + { + int retval; +@@ -374,7 +362,7 @@ vmnet_init_module(void) + *---------------------------------------------------------------------- + */ + +-void ++static void + LinuxDriverExit(void) + { + unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet"); +diff --git a/vmnet-only/vnetInt.h b/vmnet-only/vnetInt.h +index f6a90a13..e76dcf5c 100644 +--- a/vmnet-only/vnetInt.h ++++ b/vmnet-only/vnetInt.h +@@ -218,6 +218,13 @@ extern int VNetProc_Init(void); + + extern void VNetProc_Cleanup(void); + ++int VNetNetIf_Create(char *devName, VNetPort **ret, int hubNum); ++int VNetUserIf_Create(VNetPort **ret); ++int VNetBridge_Create(const char *devName, uint32 flags, VNetJack *hubJack, ++ VNetPort **ret); ++int VNetUserListener_Create(uint32 classMask, VNetJack *hubJack, ++ VNetPort **port); ++ + + /* + *---------------------------------------------------------------------- |