]> git.baikalelectronics.ru Git - kernel.git/commit
xfrm: SAD entries do not expire correctly after suspend-resume
authorYury Polyanskiy <polyanskiy@gmail.com>
Mon, 9 Nov 2009 04:58:41 +0000 (20:58 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Nov 2009 04:58:41 +0000 (20:58 -0800)
commita5f0f5c3de5515ef9a5a47aafebf618559ba9952
tree89693eb2e093da06e2228c12b43bde23e95049ad
parent34d4863b01684d45b23defaa8b6f9c016e1ed286
xfrm: SAD entries do not expire correctly after suspend-resume

  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: Yury Polyanskiy <polyanskiy@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/xfrm.h
net/xfrm/xfrm_state.c