diff options
Diffstat (limited to 'app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch')
-rw-r--r-- | app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch b/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch new file mode 100644 index 0000000..a16982c --- /dev/null +++ b/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch @@ -0,0 +1,46 @@ +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 4/5] 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 +@@ -192,6 +192,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 ++ + /* + *----------------------------------------------------------------------------- + * +-- +2.21.0 + |