summarylogtreecommitdiffstats
path: root/0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch')
-rw-r--r--0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch b/0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch
new file mode 100644
index 000000000000..b51b351d0f58
--- /dev/null
+++ b/0004-Linux_5.0-replace-do_gettimeofday-with-ktime_get_rea.patch
@@ -0,0 +1,72 @@
+From 3145a02b4f800e1f27e15e47ca3d2e1372477abf Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Fri, 18 Jan 2019 16:53:58 -0700
+Subject: [PATCH 4/5] Linux_5.0: replace do_gettimeofday with
+ ktime_get_real_ts64
+
+In Kernel commit e4b92b108c6cd6b311e4b6e85d6a87a34599a6e3 the
+do_gettimeofday function was removed.
+
+According to the Linux Documentation/core-api/timekeeping.rst
+ktime_get_real_ts64 is the direct replacement for do_gettimeofday
+
+Updated the macro osi_GetTime to use ktime_get_real_ts64 if it is
+available.
+
+Reviewed-on: https://gerrit.openafs.org/13433
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+(cherry picked from commit b892fb127815bdf72103ae41ee70aadd87931b0c)
+
+Change-Id: I1a0237457e229a11d2a87a3a269cf24adc201e59
+Reviewed-on: https://gerrit.openafs.org/13441
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+---
+ src/afs/LINUX/osi_machdep.h | 12 +++++++++---
+ src/cf/linux-kernel-func.m4 | 4 ++++
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h
+index a1a2f57c0..6832c3ee0 100644
+--- a/src/afs/LINUX/osi_machdep.h
++++ b/src/afs/LINUX/osi_machdep.h
+@@ -92,9 +92,15 @@ static inline time_t osi_Time(void) {
+ # define osi_Time() (xtime.tv_sec)
+ #endif
+
+-
+-
+-#ifdef AFS_LINUX_64BIT_KERNEL
++#if defined(HAVE_LINUX_KTIME_GET_REAL_TS64)
++# define osi_GetTime(V) \
++ do { \
++ struct timespec64 __afs_tv; \
++ ktime_get_real_ts64(&__afs_tv); \
++ (V)->tv_sec = (afs_int32)__afs_tv.tv_sec; \
++ (V)->tv_usec = (afs_int32)__afs_tv.tv_nsec / 1000; \
++ } while(0)
++#elif defined(AFS_LINUX_64BIT_KERNEL)
+ # define osi_GetTime(V) \
+ do { \
+ struct timeval __afs_tv; \
+diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
+index 62fd528d6..40fcb1668 100644
+--- a/src/cf/linux-kernel-func.m4
++++ b/src/cf/linux-kernel-func.m4
+@@ -76,6 +76,10 @@ AC_CHECK_LINUX_FUNC([ktime_get_coarse_real_ts64],
+ [#include <linux/time.h>],
+ [struct timespec64 *s;
+ ktime_get_coarse_real_ts64(s);])
++AC_CHECK_LINUX_FUNC([ktime_get_real_ts64],
++ [#include <linux/ktime.h>],
++ [struct timespec64 *s;
++ ktime_get_real_ts64(s);])
+ AC_CHECK_LINUX_FUNC([locks_lock_file_wait],
+ [#include <linux/fs.h>],
+ [locks_lock_file_wait(NULL, NULL);])
+--
+2.20.1
+