diff options
author | slurpee | 2019-11-22 22:38:57 -0800 |
---|---|---|
committer | slurpee | 2019-11-22 22:38:57 -0800 |
commit | b308c5a6c9cd17cc359f31056f8f62563d8a273a (patch) | |
tree | 14fee4abf3b86330773d2842b4e198413b7bdd83 | |
parent | d15141dc9f337d54a2df97c3c237595b88c71a70 (diff) | |
download | aur-b308c5a6c9cd17cc359f31056f8f62563d8a273a.tar.gz |
updating for v15.5.1, k5.3
-rw-r--r-- | PKGBUILD | 5 | ||||
-rw-r--r-- | vmmon-15.5.1-5.3.patch | 232 | ||||
-rw-r--r-- | vmnet-15.5.1-5.3.patch | 85 |
3 files changed, 321 insertions, 1 deletions
@@ -2,7 +2,7 @@ # Contributors: Ben White, Igor Duarte Cardoso, haagch, Olivier Médoc, Rains, Det pkgname=vmware-patch -pkgver=15.5.0 +pkgver=15.5.1 pkgrel=1 pkgdesc="A post-install configuration solution for VMware Workstation (Pro) and Player (Plus and Pro)" arch=('i686' 'x86_64') @@ -13,6 +13,9 @@ options=('!emptydirs') install=$pkgname.install source=('vmware-patch.sh' 'vmware-unpatch.sh' 'common-functions.sh' 'vmware.service' 'vmware-usbarbitrator.service' 'vmware-workstation.service' # Workstation Pro/Player 15.5.0 + 'vmmon-15.5.1-5.3.patch' + 'vmnet-15.5.1-5.3.patch' + # Workstation Pro/Player 15.5.0 'vmmon-15.5.0-5.3.patch' 'vmnet-15.5.0-5.3.patch' # Workstation Pro/Player 14.0.0 diff --git a/vmmon-15.5.1-5.3.patch b/vmmon-15.5.1-5.3.patch new file mode 100644 index 000000000000..4c24d02c2312 --- /dev/null +++ b/vmmon-15.5.1-5.3.patch @@ -0,0 +1,232 @@ +diff --git vmmon-only/Makefile vmmon-only/Makefile +index f859c8c..7616899 100644 +--- vmmon-only/Makefile ++++ vmmon-only/Makefile +@@ -136,9 +136,6 @@ ifdef VMX86_DEBUG + CC_OPTS += -DVMX86_DEBUG + endif + +-# Add Spectre options when available +-CC_OPTS += $(call vm_check_gcc,-mindirect-branch=thunk -mindirect-branch-register,) +- + include $(SRCROOT)/Makefile.kernel + + else +diff --git vmmon-only/Makefile.kernel vmmon-only/Makefile.kernel +index 385068d..a2e5911 100644 +--- vmmon-only/Makefile.kernel ++++ vmmon-only/Makefile.kernel +@@ -31,7 +31,7 @@ $(DRIVER)-y := $(subst $(SRCROOT)/, , $(patsubst %.c, %.o, \ + $(SRCROOT)/bootstrap/*.c))) + + clean: +- rm -rf $(wildcard $(DRIVER).mod.c $(DRIVER).ko .tmp_versions \ ++ rm -rf $(wildcard $(DRIVER).mod.c $(DRIVER).ko .tmp_versions .cache.mk \ + Module.symvers Modules.symvers Module.markers modules.order \ + $(foreach dir,linux/ common/ vmcore/ bootstrap/ \ + ./,$(addprefix $(dir),.*.cmd .*.o.flags *.o))) +diff --git vmmon-only/common/task.c vmmon-only/common/task.c +index e23c0f0..97ac667 100644 +--- vmmon-only/common/task.c ++++ vmmon-only/common/task.c +@@ -2307,12 +2307,23 @@ TaskSwitchToMonitor(VMCrossPage *crosspage) + { + uint64 raxGetsWiped, rcxGetsWiped; + ++#ifdef CALL_NOSPEC ++ __asm__ __volatile__(CALL_NOSPEC ++ : "=a" (raxGetsWiped), ++ "=c" (rcxGetsWiped) ++ : "0" (codePtr), ++ "1" (crosspage), ++ THUNK_TARGET(codePtr) ++ : "rdx", "r8", "r9", "r10", "r11", "cc", "memory"); ++#else + __asm__ __volatile__("call *%%rax" + : "=a" (raxGetsWiped), + "=c" (rcxGetsWiped) + : "0" (codePtr), + "1" (crosspage) + : "rdx", "r8", "r9", "r10", "r11", "cc", "memory"); ++#endif ++ + } + #elif defined(_MSC_VER) + /* +diff --git vmmon-only/include/compat_poll.h vmmon-only/include/compat_poll.h +new file mode 100644 +index 0000000..562cdb6 +--- /dev/null ++++ vmmon-only/include/compat_poll.h +@@ -0,0 +1,30 @@ ++#ifndef __COMPAT_POLL_H__ ++#define __COMPAT_POLL_H__ ++ ++#include <linux/poll.h> ++ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)) ++ ++#ifndef __poll_t ++typedef unsigned int __poll_t; ++#endif ++ ++static inline __poll_t compat_vfs_poll(struct file *file, ++ struct poll_table_struct *pt) ++{ ++ if (unlikely(!file->f_op->poll)) ++ return DEFAULT_POLLMASK; ++ return file->f_op->poll(file, pt); ++} ++ ++#else ++ ++static inline __poll_t compat_vfs_poll(struct file *file, ++ struct poll_table_struct *pt) ++{ ++ return vfs_poll(file, pt); ++} ++ ++#endif ++ ++#endif /* __COMPAT_POLL_H__ */ +diff --git vmmon-only/include/vm_assert.h vmmon-only/include/vm_assert.h +index 74cbc2f..38e2f04 100644 +--- vmmon-only/include/vm_assert.h ++++ vmmon-only/include/vm_assert.h +@@ -67,6 +67,7 @@ extern "C" { + #if defined (VMKPANIC) + #include "vmk_assert.h" + #else /* !VMKPANIC */ ++#include <linux/kernel.h> + #define _ASSERT_PANIC(name) \ + Panic(_##name##Fmt "\n", __FILE__, __LINE__) + #define _ASSERT_PANIC_BUG(bug, name) \ +@@ -107,7 +108,7 @@ NORETURN void Panic_NoSave(const char *fmt, ...) PRINTF_DECL(1, 2); + } while(0) + + #else +-NORETURN void Panic(const char *fmt, ...) PRINTF_DECL(1, 2); ++#define Panic panic + #endif + + void LogThrottled(uint32 *count, const char *fmt, ...) PRINTF_DECL(2, 3); +diff --git vmmon-only/include/x86_basic_defs.h vmmon-only/include/x86_basic_defs.h +index bd1f870..7829524 100644 +--- vmmon-only/include/x86_basic_defs.h ++++ vmmon-only/include/x86_basic_defs.h +@@ -35,6 +35,8 @@ + #define INCLUDE_ALLOW_VMCORE + #include "includeCheck.h" + ++#include <asm/processor-flags.h> ++ + #define X86_MAX_INSTR_LEN 15 /* Max byte length of an x86 instruction. */ + + #define NUM_IDT_VECTORS 256 +@@ -75,7 +77,9 @@ + #define CR3_PDB_MASK 0xfffff000 + #define CR3_IGNORE 0xFFF + #define PAE_CR3_IGNORE 0x1F ++#ifndef CR3_PCID_MASK + #define CR3_PCID_MASK 0xFFF ++#endif + #define CR3_NO_FLUSH (1ULL << 63) + + #define CR4_VME 0x00000001 +diff --git vmmon-only/include/x86msr.h vmmon-only/include/x86msr.h +index 469ee63..aadd542 100644 +--- vmmon-only/include/x86msr.h ++++ vmmon-only/include/x86msr.h +@@ -24,6 +24,7 @@ + + #ifndef _X86MSR_H_ + #define _X86MSR_H_ ++#include <asm/msr-index.h> + #define INCLUDE_ALLOW_USERLEVEL + #define INCLUDE_ALLOW_VMX + +@@ -129,7 +130,9 @@ MSRQuery; + + #define MSR_PRED_CMD_IBPB (1UL << 0) + ++#ifndef MSR_MISC_FEATURES_ENABLES + #define MSR_MISC_FEATURES_ENABLES 0x140 ++#endif + + /* Intel Core Architecture and later: use only architected counters. */ + #define IA32_MSR_PERF_CAPABILITIES 0x345 +@@ -469,7 +472,9 @@ typedef enum { + #define MSR_K7_HWCR_SSEDIS 0x00008000ULL // Disable SSE bit + #define MSR_K7_HWCR_MONMWAITUSEREN 0x00000400ULL // Enable MONITOR/MWAIT CPL>0 + #define MSR_K7_HWCR_TLBFFDIS 0x00000040ULL // Disable TLB Flush Filter ++#ifndef MSR_K7_HWCR_SMMLOCK + #define MSR_K7_HWCR_SMMLOCK 0x00000001ULL // Lock SMM environment ++#endif + + #ifndef MSR_K8_SYSCFG + #define MSR_K8_SYSCFG 0xc0010010 +@@ -628,7 +633,9 @@ typedef enum { + #define MSR_HYPERV_GUESTOSID_OS_WINNT_DERIVATIVE 4ULL + + /* MSR for forcing RTM abort to recover PMC3 (see PR 2333817) */ ++#ifndef MSR_TSX_FORCE_ABORT + #define MSR_TSX_FORCE_ABORT 0x0000010f ++#endif + #define MSR_TSX_FORCE_ABORT_RTM_BIT_INDEX 0 + + /* +@@ -682,7 +689,11 @@ typedef unsigned char MTRRType; + /* + * MISC_FEATURES_ENABLES bits + */ ++#ifdef MSR_MISC_FEATURES_ENABLES_CPUID_FAULT ++#define MSR_MISC_FEATURES_ENABLES_CPUID_FAULTING MSR_MISC_FEATURES_ENABLES_CPUID_FAULT ++#else + #define MSR_MISC_FEATURES_ENABLES_CPUID_FAULTING 1 ++#endif + + + +diff --git vmmon-only/linux/driver.c vmmon-only/linux/driver.c +index a1fb92b..e8c23b7 100644 +--- vmmon-only/linux/driver.c ++++ vmmon-only/linux/driver.c +@@ -957,7 +957,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values + *----------------------------------------------------------------------------- + */ + +-__attribute__((always_inline)) static Bool ++__always_inline static Bool + LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min + { + TSCDelta tscDelta; +@@ -1533,7 +1533,7 @@ LinuxDriver_Ioctl(struct file *filp, // IN: + } + + case IOCTL_VMX86_WRITE_PAGE: { +-#if VMX86_DEVEL ++#ifdef VMX86_DEVEL + VMMReadWritePage req; + + retval = HostIF_CopyFromUser(&req, ioarg, sizeof req); +diff --git vmmon-only/linux/hostif.c vmmon-only/linux/hostif.c +index f3a96a8..1e1be1a 100644 +--- vmmon-only/linux/hostif.c ++++ vmmon-only/linux/hostif.c +@@ -74,6 +74,7 @@ + + #include "pgtbl.h" + #include "versioned_atomic.h" ++#include "compat_poll.h" + + #if !defined(CONFIG_HIGH_RES_TIMERS) + #error CONFIG_HIGH_RES_TIMERS required for acceptable performance +@@ -2575,7 +2576,7 @@ HostIF_SemaphoreWait(VMDriver *vm, // IN: + + poll_initwait(&table); + current->state = TASK_INTERRUPTIBLE; +- mask = file->f_op->poll(file, &table.pt); ++ mask = compat_vfs_poll(file, &table.pt); + if (!(mask & (POLLIN | POLLERR | POLLHUP))) { + vm->vmhost->vcpuSemaTask[vcpuid] = current; + schedule_timeout(timeoutms * HZ / 1000); // convert to Hz diff --git a/vmnet-15.5.1-5.3.patch b/vmnet-15.5.1-5.3.patch new file mode 100644 index 000000000000..a0b1491ac5ca --- /dev/null +++ b/vmnet-15.5.1-5.3.patch @@ -0,0 +1,85 @@ +diff --git vmnet-only/Makefile vmnet-only/Makefile +index 40bdb6a..5ac1180 100644 +--- vmnet-only/Makefile ++++ vmnet-only/Makefile +@@ -136,9 +136,6 @@ ifdef VMX86_DEBUG + CC_OPTS += -DVMX86_DEBUG + endif + +-# Add Spectre options when available +-CC_OPTS += $(call vm_check_gcc,-mindirect-branch=thunk -mindirect-branch-register,) +- + include $(SRCROOT)/Makefile.kernel + + else +diff --git vmnet-only/Makefile.kernel vmnet-only/Makefile.kernel +index 44a8a95..de04abe 100644 +--- vmnet-only/Makefile.kernel ++++ vmnet-only/Makefile.kernel +@@ -32,6 +32,6 @@ $(DRIVER)-y := driver.o hub.o userif.o netif.o bridge.o procfs.o smac_compat.o \ + #### + + clean: +- rm -rf $(DRIVER).o $(DRIVER).mod.o $(DRIVER).mod.c $(DRIVER).ko \ ++ rm -rf $(DRIVER).o $(DRIVER).mod.o $(DRIVER).mod.c $(DRIVER).ko .cache.mk \ + .tmp_versions Module.symvers Modules.symvers Module.markers \ + modules.order $($(DRIVER)-y) .*.cmd .*.o.flags +diff --git vmnet-only/bridge.c vmnet-only/bridge.c +index 25a7442..fd692d2 100644 +--- vmnet-only/bridge.c ++++ vmnet-only/bridge.c +@@ -67,6 +67,18 @@ + + #if LOGLEVEL >= 4 + static struct timeval vnetTime; ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) ++static void do_gettimeofday(struct timeval *tv) ++{ ++ struct timespec64 now; ++ ++ ktime_get_real_ts64(&now); ++ tv->tv_sec = now.tv_sec; ++ tv->tv_usec = now.tv_nsec / 1000; ++} ++#endif ++ + #endif + + typedef struct VNetBridge VNetBridge; +diff --git vmnet-only/vm_device_version.h vmnet-only/vm_device_version.h +index 440038d..8758f87 100644 +--- vmnet-only/vm_device_version.h ++++ vmnet-only/vm_device_version.h +@@ -35,6 +35,8 @@ + #endif + #endif + ++#include <linux/pci_ids.h> ++ + /* LSILogic 53C1030 Parallel SCSI controller + * LSILogic SAS1068 SAS controller + */ +@@ -53,7 +55,10 @@ + * VMware HD Audio codec + * VMware HD Audio controller + */ ++#ifndef PCI_VENDOR_ID_VMWARE + #define PCI_VENDOR_ID_VMWARE 0x15AD ++#endif ++ + #define PCI_DEVICE_ID_VMWARE_SVGA3 0x0406 + #define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405 + #define PCI_DEVICE_ID_VMWARE_SVGA 0x0710 +@@ -71,7 +76,11 @@ + #define PCI_DEVICE_ID_VMWARE_1394 0x0780 + #define PCI_DEVICE_ID_VMWARE_BRIDGE 0x0790 + #define PCI_DEVICE_ID_VMWARE_ROOTPORT 0x07A0 ++ ++#ifndef PCI_DEVICE_ID_VMWARE_VMXNET3 + #define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07B0 ++#endif ++ + #define PCI_DEVICE_ID_VMWARE_PVSCSI 0x07C0 + #define PCI_DEVICE_ID_VMWARE_82574 0x07D0 + #define PCI_DEVICE_ID_VMWARE_AHCI 0x07E0 |