Subject: [PATCHv2 net-next] xfrm: Make xfrm_state timer monotonic

From: Fan Du <[email-masked]>
Date: Mon, 12 Aug 2013 13:40:07 +0800

On 2013年08月06日 17:22, Steffen Klassert wrote:
> On Tue, Aug 06, 2013 at 02:57:05PM +0800, Fan Du wrote:
>> xfrm_state timer should be independent of system clock change,
>> so switch to monotonic clock base.
>>
>
> I think a monotonic timer will reintroduce a bug on suspend/resume
> that was fixed by commit 9e0d57fd6
> (xfrm: SAD entries do not expire correctly after suspend-resume)
>
> Please make sure that this does not happen.

What about using CLOCK_BOOTTIME? it's monotonic, but includes suspend time as well.

 From 1dae5a22c203224ee46e2a2f95b569a04b74117b Mon Sep 17 00:00:00 2001
From: Fan Du <[email-masked]>
Date: Mon, 12 Aug 2013 13:33:45 +0800
Subject: [PATCHv2 net-next] xfrm: Make xfrm_state timer monotonic

xfrm_state timer should be independent of system clock change,
so switch to CLOCK_BOOTTIME base which is not only monotonic but
also counting suspend time.

Signed-off-by: Fan Du <[email-masked]>
---
  net/xfrm/xfrm_state.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 78f66fa..1df4436 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -499,7 +499,7 @@ struct xfrm_state *xfrm_state_alloc(struct net *net)
  		INIT_HLIST_NODE(&x->bydst);
  		INIT_HLIST_NODE(&x->bysrc);
  		INIT_HLIST_NODE(&x->byspi);
-		tasklet_hrtimer_init(&x->mtimer, xfrm_timer_handler, CLOCK_REALTIME, HRTIMER_MODE_ABS);
+		tasklet_hrtimer_init(&x->mtimer, xfrm_timer_handler, CLOCK_BOOTTIME, HRTIMER_MODE_ABS);
  		setup_timer(&x->rtimer, xfrm_replay_timer_handler,
  				(unsigned long)x);
  		x->curlft.add_time = get_seconds();
-- 
1.7.9.5

> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

-- 
浮沉随浪只记今朝笑

--fan