summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2019-03-03 20:56:00 +0100
committerJean-Marc Lenoir2019-03-03 20:56:00 +0100
commitaa647ebd8e35424d7c810f151e04db4a76d4d095 (patch)
tree59676cc0c482031273e005230597d8f2d3cd0a8f
parentf383c7d10bb08c560a568345713a7a714ebe2950 (diff)
downloadaur-aa647ebd8e35424d7c810f151e04db4a76d4d095.tar.gz
Compatibility with Linux 5.0
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD6
-rw-r--r--vmmon.patch159
-rw-r--r--vmnet.patch68
4 files changed, 233 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c30aa239e90..47a50838111 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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.5
- pkgrel = 1
+ pkgrel = 2
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
arch = x86_64
@@ -83,8 +83,8 @@ pkgbase = vmware-workstation14
sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d
sha256sums = 05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487
sha256sums = 6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d
- sha256sums = 9f93fa48c658474080482f2714c30bf0a850f40c2d7c739473dc9c489ce3da7b
- sha256sums = c2e981d5d6a4fab4d33d4e3df394bdb597834fae14ebb535a40271c3f2677f0d
+ sha256sums = 1ab029980b186d37a0f8da293e93239648ae89b438ea5341683489bd02f444f8
+ sha256sums = 955329f91f25f523f5974992923238d2718bc6255acc7e18fabf80cf20206531
sha256sums = c085cec6e2a57951fd2fb8e0832ef40da6c2f0012e08170f7f76aef77c215a39
sha256sums = 1455cc7b683e758baff2bb1ff0300c10f049274f2613a00a73150798dd45ed3a
sha256sums = 29e0b0db9c0296ab81eee543803c4bd430e2c69c76e33492910e17280da1c05c
diff --git a/PKGBUILD b/PKGBUILD
index 2ff4ca6038f..7cd172c6c19 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -16,7 +16,7 @@ pkgname=vmware-workstation14
pkgver=14.1.5
_buildver=10950780
_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'
@@ -117,8 +117,8 @@ sha256sums=(
'05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487'
'6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d'
- '9f93fa48c658474080482f2714c30bf0a850f40c2d7c739473dc9c489ce3da7b'
- 'c2e981d5d6a4fab4d33d4e3df394bdb597834fae14ebb535a40271c3f2677f0d'
+ '1ab029980b186d37a0f8da293e93239648ae89b438ea5341683489bd02f444f8'
+ '955329f91f25f523f5974992923238d2718bc6255acc7e18fabf80cf20206531'
)
options=(!strip emptydirs)
diff --git a/vmmon.patch b/vmmon.patch
index 2aff1e3a734..27939af40f9 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -45,3 +45,162 @@ index 98cc74a..400ebfe 100644
}
#elif defined(_MSC_VER)
/*
+From 8ba37a5023f939ba8d2e0d91b916ff442b1c18dd Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:05:42 +0100
+Subject: [PATCH] modules: replace SUBDIRS with M
+
+Since commit 0126be38d988 ("kbuild: announce removal of SUBDIRS if used")
+in v5.0-rc1, using SUBDIRS when building out of tree modules produces
+a deprecation warning. As M used to work since pretty much ever, use it
+unconditionally.
+---
+ vmmon-only/Makefile | 2 +-
+ vmnet-only/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
+index ccdd295..b4b71fb 100644
+--- a/vmmon-only/Makefile
++++ b/vmmon-only/Makefile
+@@ -111,7 +111,7 @@ prebuild:: ;
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) M=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+From ca44ce7215b91f82ff500843784b4e86a720fffe Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:11:35 +0100
+Subject: [PATCH] vmmon: totalram_pages is a function since 5.0
+
+Since commit ca79b0c211af ("mm: convert totalram_pages and totalhigh_pages
+variables to atomic") in v5.0-rc1, totalram_pages() is an accessor function
+and the actual variable is an atomic.
+---
+ vmmon-only/linux/hostif.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index af4b1d9..d32653c 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -180,6 +180,15 @@ static void UnlockEntry(void *clientData, MemTrackEntry *entryPtr);
+ uint8 monitorIPIVector;
+ uint8 hvIPIVector;
+
++static unsigned long compat_totalram_pages(void)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
++ return totalram_pages;
++#else
++ return totalram_pages();
++#endif
++}
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -1494,14 +1503,7 @@ unsigned int
+ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN
+ unsigned int currentlyLockedPages) // IN
+ {
+- /*
+- * This variable is available and exported to modules,
+- * since at least 2.6.0.
+- */
+-
+- extern unsigned long totalram_pages;
+-
+- unsigned int totalPhysicalPages = totalram_pages;
++ unsigned int totalPhysicalPages = compat_totalram_pages();
+
+ /*
+ * Use the memory information linux exports as of late for a more
+From 97d03d41984a0ade064fa6ac0400eb61de7929ff Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:15:11 +0100
+Subject: [PATCH] vmmon: bring back the do_gettimeofday() helper
+
+The do_gettimeofday() helper was removed by commit e4b92b108c6c
+("timekeeping: remove obsolete time accessors") in v5.0-rc1. Bring it back
+for users in vmmon-only/linux/hostif.c.
+
+This feels like a quick and clumsy band aid to allow build with post-4.20
+kernels. On a closer look, the whole gymnastics around uptimeState and
+HostIFReadUptimeWork() with jiffies and wall time checking and correcting
+each other seems to be a workaround for an absence of high resolution
+monotonic time. Considering ktime_get_ts64() is available since 3.17 and
+before that, ktime_get_ts() since 2.6.17, perhaps the time has come to
+clean all this machinery up. But something like this would be beyond the
+scope of this repository.
+---
+ vmmon-only/linux/hostif.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index d32653c..cf4197b 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -189,6 +189,17 @@ static unsigned long compat_totalram_pages(void)
+ #endif
+ }
+
++#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
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+From 92b90ac11baf215ba73cb94e5aebf0576f1966a0 Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Sat, 5 Jan 2019 01:54:57 +0100
+Subject: [PATCH] modules: handle access_ok() with two arguments
+
+Since commit 96d4f267e40f ("Remove 'type' argument from access_ok()
+function") in v5.0-rc1, the type argument of access_ok() was dropped.
+The same commit also dropped macros VERIFY_READ and VERIFY_WRITE so check
+for their existence on pre-5.0 kernels to allow build against kernels with
+this change backported.
+---
+ vmmon-only/linux/hostif.c | 8 +++++++-
+ vmnet-only/userif.c | 8 +++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index cf4197b..ef88a22 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -200,6 +200,12 @@ static void do_gettimeofday(struct timeval *tv)
+ }
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) && defined(VERIFY_WRITE)
++ #define write_access_ok(addr, size) access_ok(VERIFY_WRITE, addr, size)
++#else
++ #define write_access_ok(addr, size) access_ok(addr, size)
++#endif
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -3213,7 +3219,7 @@ HostIF_MapUserMem(VA addr, // IN: User memory virtual address
+
+ ASSERT(handle);
+
+- if (!access_ok(VERIFY_WRITE, p, size)) {
++ if (!write_access_ok(p, size)) {
+ printk(KERN_ERR "%s: Couldn't verify write to uva 0x%p with size %"
+ FMTSZ"u\n", __func__, p, size);
+
diff --git a/vmnet.patch b/vmnet.patch
index d2c620705ca..226ba9f3149 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -14,3 +14,71 @@ index 459846e..cd29652 100644
# Header directory for the running kernel
ifdef LINUXINCLUDE
+From 8ba37a5023f939ba8d2e0d91b916ff442b1c18dd Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:05:42 +0100
+Subject: [PATCH] modules: replace SUBDIRS with M
+
+Since commit 0126be38d988 ("kbuild: announce removal of SUBDIRS if used")
+in v5.0-rc1, using SUBDIRS when building out of tree modules produces
+a deprecation warning. As M used to work since pretty much ever, use it
+unconditionally.
+---
+ vmmon-only/Makefile | 2 +-
+ vmnet-only/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
+index caab6b9..c2fc51f 100644
+--- a/vmnet-only/Makefile
++++ b/vmnet-only/Makefile
+@@ -111,7 +111,7 @@ prebuild:: ;
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) M=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+From 92b90ac11baf215ba73cb94e5aebf0576f1966a0 Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Sat, 5 Jan 2019 01:54:57 +0100
+Subject: [PATCH] modules: handle access_ok() with two arguments
+
+Since commit 96d4f267e40f ("Remove 'type' argument from access_ok()
+function") in v5.0-rc1, the type argument of access_ok() was dropped.
+The same commit also dropped macros VERIFY_READ and VERIFY_WRITE so check
+for their existence on pre-5.0 kernels to allow build against kernels with
+this change backported.
+---
+ vmmon-only/linux/hostif.c | 8 +++++++-
+ vmnet-only/userif.c | 8 +++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
+index acc6ca6..5d935ee 100644
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -85,6 +85,12 @@ extern unsigned int vnet_max_qlen;
+ # define compat_kunmap(page) kunmap((page).p)
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) && defined(VERIFY_WRITE)
++ #define write_access_ok(addr, size) access_ok(VERIFY_WRITE, addr, size)
++#else
++ #define write_access_ok(addr, size) access_ok(addr, size)
++#endif
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -142,7 +148,7 @@ VNetUserIfMapPtr(VA uAddr, // IN: pointer to user memory
+ struct page **p, // OUT: locked page
+ void **ptr) // OUT: kernel mapped pointer
+ {
+- if (!access_ok(VERIFY_WRITE, (void *)uAddr, size) ||
++ if (!write_access_ok((void *)uAddr, size) ||
+ (((uAddr + size - 1) & ~(PAGE_SIZE - 1)) !=
+ (uAddr & ~(PAGE_SIZE - 1)))) {
+ return -EINVAL;