| From 3a1a2612bf6b5d17df2b63c7ca03d67fbe15a15a Mon Sep 17 00:00:00 2001 |
| From: Steffen Klassert <steffen.klassert@secunet.com> |
| Date: Wed, 21 Mar 2012 23:36:13 +0000 |
| Subject: xfrm: Access the replay notify functions via the registered callbacks |
| |
| |
| From: Steffen Klassert <steffen.klassert@secunet.com> |
| |
| [ Upstream commit 1265fd616782ef03b98fd19f65c2b47fcd4ea11f ] |
| |
| We call the wrong replay notify function when we use ESN replay |
| handling. This leads to the fact that we don't send notifications |
| if we use ESN. Fix this by calling the registered callbacks instead |
| of xfrm_replay_notify(). |
| |
| Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/xfrm/xfrm_replay.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/net/xfrm/xfrm_replay.c |
| +++ b/net/xfrm/xfrm_replay.c |
| @@ -167,7 +167,7 @@ static void xfrm_replay_advance(struct x |
| } |
| |
| if (xfrm_aevent_is_on(xs_net(x))) |
| - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); |
| + x->repl->notify(x, XFRM_REPLAY_UPDATE); |
| } |
| |
| static int xfrm_replay_overflow_bmp(struct xfrm_state *x, struct sk_buff *skb) |
| @@ -279,7 +279,7 @@ static void xfrm_replay_advance_bmp(stru |
| replay_esn->bmp[nr] |= (1U << bitnr); |
| |
| if (xfrm_aevent_is_on(xs_net(x))) |
| - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); |
| + x->repl->notify(x, XFRM_REPLAY_UPDATE); |
| } |
| |
| static void xfrm_replay_notify_bmp(struct xfrm_state *x, int event) |
| @@ -473,7 +473,7 @@ static void xfrm_replay_advance_esn(stru |
| replay_esn->bmp[nr] |= (1U << bitnr); |
| |
| if (xfrm_aevent_is_on(xs_net(x))) |
| - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); |
| + x->repl->notify(x, XFRM_REPLAY_UPDATE); |
| } |
| |
| static struct xfrm_replay xfrm_replay_legacy = { |