diff options
author | Fan Du <fan.du@windriver.com> | 2013-09-23 17:18:25 +0800 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2013-10-01 10:09:33 +0200 |
commit | 6f1156383a419a4d19bdc196ffa8d4dbe2f01b36 (patch) | |
tree | 873160d46032eea18d82e8ae987353341a14d9be | |
parent | b32418705107265dfca5edfe2b547643e53a732e (diff) | |
download | op-kernel-dev-6f1156383a419a4d19bdc196ffa8d4dbe2f01b36.zip op-kernel-dev-6f1156383a419a4d19bdc196ffa8d4dbe2f01b36.tar.gz |
xfrm: Force SA to be lookup again if SA in acquire state
If SA is in the process of acquiring, which indicates this SA is more
promising and precise than the fall back option, i.e. using wild card
source address for searching less suitable SA.
So, here bail out, and try again.
Signed-off-by: Fan Du <fan.du@windriver.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
-rw-r--r-- | net/xfrm/xfrm_state.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index d6e7f98..b2117a16 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -815,7 +815,7 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr, xfrm_state_look_at(pol, x, fl, encap_family, &best, &acquire_in_progress, &error); } - if (best) + if (best || acquire_in_progress) goto found; h_wildcard = xfrm_dst_hash(net, daddr, &saddr_wildcard, tmpl->reqid, encap_family); |