diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2018-02-01 05:26:12 -0500 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2018-02-13 03:09:28 -0500 |
commit | 2471c98165494173a3cd03231b216b909c063e41 (patch) | |
tree | 0ae4694e512682ae39937c43cab4a083b13b7799 | |
parent | 19d7df69fdb2636856dc8919de72fc1bf8f79598 (diff) |
xfrm: Fix policy hold queue after flowcache removal.
Now that the flowcache is removed we need to generate
a new dummy bundle every time we check if the needed
SAs are in place because the dummy bundle is not cached
anymore. Fix it by passing the XFRM_LOOKUP_QUEUE flag
to xfrm_lookup(). This makes sure that we get a dummy
bundle in case the SAs are not yet in place.
Fixes: 3ca28286ea80 ("xfrm_policy: bypass flow_cache_lookup")
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
-rw-r--r-- | net/xfrm/xfrm_policy.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 7a23078132cf..8b3811ff002d 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1891,7 +1891,7 @@ static void xfrm_policy_queue_process(struct timer_list *t) | |||
1891 | spin_unlock(&pq->hold_queue.lock); | 1891 | spin_unlock(&pq->hold_queue.lock); |
1892 | 1892 | ||
1893 | dst_hold(xfrm_dst_path(dst)); | 1893 | dst_hold(xfrm_dst_path(dst)); |
1894 | dst = xfrm_lookup(net, xfrm_dst_path(dst), &fl, sk, 0); | 1894 | dst = xfrm_lookup(net, xfrm_dst_path(dst), &fl, sk, XFRM_LOOKUP_QUEUE); |
1895 | if (IS_ERR(dst)) | 1895 | if (IS_ERR(dst)) |
1896 | goto purge_queue; | 1896 | goto purge_queue; |
1897 | 1897 | ||