diff options
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.patch | 72 |
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 + |