diff options
author | Jean-Marc Lenoir | 2019-03-03 20:54:43 +0100 |
---|---|---|
committer | Jean-Marc Lenoir | 2019-03-03 20:54:43 +0100 |
commit | af18c4140fc526fc6ec548679cf86c07981726f9 (patch) | |
tree | 4e34322d9c0aa5bbdda7ee8609bc78c928a2e295 /vmnet.patch | |
parent | e0bfe4903209b8bba2fef540f9aed263a5c6803c (diff) | |
download | aur-af18c4140fc526fc6ec548679cf86c07981726f9.tar.gz |
Compatibility with Linux 5.0
Diffstat (limited to 'vmnet.patch')
-rw-r--r-- | vmnet.patch | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/vmnet.patch b/vmnet.patch index 2640ec286868..8e99551a5ef2 100644 --- a/vmnet.patch +++ b/vmnet.patch @@ -120,3 +120,118 @@ index 0ee52ec..4e3b923 100644 # define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \ PF_NETLINK, _pri, &vmnet_proto, 1) #elif defined(VMW_NETDEV_HAS_NET) +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 +@@ -121,7 +121,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 c3fb5cda191137afddfdbd2f31bb4b15f9aeb3f2 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/include/compat_timekeeping32.h | 15 +++++++++++++++ + vmmon-only/linux/driver.c | 1 + + vmmon-only/linux/hostif.c | 1 + + vmnet-only/bridge.c | 11 +++++++++++ + 4 files changed, 28 insertions(+) + create mode 100644 vmmon-only/include/compat_timekeeping32.h + +diff --git a/vmnet-only/bridge.c b/vmnet-only/bridge.c +index c569054..6e3249a 100644 +--- a/vmnet-only/bridge.c ++++ b/vmnet-only/bridge.c +@@ -52,6 +52,17 @@ + #include "vnetInt.h" + #include "smac.h" + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) ++static inline 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 ++ + #define VNET_BRIDGE_HISTORY 48 + + /* +From 5db3c8a86f435e21f37a2acf386e2e52a1b42aa6 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 a7aee04..eecd4f8 100644 +--- a/vmnet-only/userif.c ++++ b/vmnet-only/userif.c +@@ -91,6 +91,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 ++ + /* + *----------------------------------------------------------------------------- + * +@@ -148,7 +154,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; |