On 2/2/2018 10:18 AM, Pravin Shelar wrote:
On Tue, Jan 30, 2018 at 4:40 PM, Gregory Rose <[email protected]> wrote:
On 1/30/2018 3:40 PM, Greg Rose wrote:
From: Arnd Bergmann <[email protected]>
Upstream commit:
commit 311af51dcb5629f04976a8e451673f77e3301041
Author: Arnd Bergmann <[email protected]>
Date: Mon Nov 27 12:41:38 2017 +0100
openvswitch: use ktime_get_ts64() instead of ktime_get_ts()
timespec is deprecated because of the y2038 overflow, so let's
convert
this one to ktime_get_ts64(). The code is already safe even on 32-bit
architectures, since it uses monotonic times. On 64-bit
architectures,
nothing changes, while on 32-bit architectures this avoids one
type conversion.
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Additional compatability check for ktime_get_ts64() exists or not.
If not, then just continue using ktime_get_ts().
Cc: Arnd Bergmann <[email protected]>
Signed-off-by: Greg Rose <[email protected]>
Oops, I screwed this up. ktime_get_ts64 isn't a macro. We'll need this
incremental...
diff --git a/acinclude.m4 b/acinclude.m4
index bc1ec72..5c63222 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -807,6 +807,9 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/linux/timekeeping.h],
[ktime_get_ns],
[OVS_DEFINE([HAVE_KTIME_GET_NS])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/timekeeping.h],
+ [ktime_get_ts64],
+ [OVS_DEFINE([HAVE_KTIME_GET_TS64])])
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then
diff --git a/datapath/flow.c b/datapath/flow.c
index 385e481..cd8d422 100644
--- a/datapath/flow.c
+++ b/datapath/flow.c
@@ -52,7 +52,7 @@
#include "flow_netlink.h"
#include "vport.h"
-#ifndef ktime_get_ts64
+#ifndef HAVE_KTIME_GET_TS64
#define ktime_get_ts64 ktime_get_ts
#define timespec64 timespec
#endif
---
datapath/flow.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/datapath/flow.c b/datapath/flow.c
index 5da7e3e..385e481 100644
--- a/datapath/flow.c
+++ b/datapath/flow.c
@@ -52,14 +52,19 @@
#include "flow_netlink.h"
#include "vport.h"
+#ifndef ktime_get_ts64
+#define ktime_get_ts64 ktime_get_ts
+#define timespec64 timespec
+#endif
+
This is done in compat code, can you move it to respective header file?
Yes - my own preference is to keep these sorts of things close to where
they're used but
I suppose there is a good chance we'll use ktime_get_ts64 elsewhere in
the future. So
that's fine by me.
Thanks,
- Greg
u64 ovs_flow_used_time(unsigned long flow_jiffies)
{
- struct timespec cur_ts;
+ struct timespec64 cur_ts;
u64 cur_ms, idle_ms;
- ktime_get_ts(&cur_ts);
+ ktime_get_ts64(&cur_ts);
idle_ms = jiffies_to_msecs(jiffies - flow_jiffies);
- cur_ms = (u64)cur_ts.tv_sec * MSEC_PER_SEC +
+ cur_ms = (u64)(u32)cur_ts.tv_sec * MSEC_PER_SEC +
cur_ts.tv_nsec / NSEC_PER_MSEC;
return cur_ms - idle_ms;
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev