• Yury Polyanskiy's avatar
    xfrm: SAD entries do not expire correctly after suspend-resume · 9e0d57fd
    Yury Polyanskiy authored
      This fixes the following bug in the current implementation of
    net/xfrm: SAD entries timeouts do not count the time spent by the machine 
    in the suspended state. This leads to the connectivity problems because 
    after resuming local machine thinks that the SAD entry is still valid, while 
    it has already been expired on the remote server.
    
      The cause of this is very simple: the timeouts in the net/xfrm are bound to 
    the old mod_timer() timers. This patch reassigns them to the
    CLOCK_REALTIME hrtimer.
    
      I have been using this version of the patch for a few months on my
    machines without any problems. Also run a few stress tests w/o any
    issues.
    
      This version of the patch uses tasklet_hrtimer by Peter Zijlstra
    (commit 9ba5f0).
    
      This patch is against 2.6.31.4. Please CC me.
    Signed-off-by: default avatarYury Polyanskiy <polyanskiy@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9e0d57fd
xfrm_state.c 54.2 KB