summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFan Du <fan.du@windriver.com>2013-09-23 11:18:25 +0200
committerSteffen Klassert <steffen.klassert@secunet.com>2013-10-01 10:09:33 +0200
commit6f1156383a419a4d19bdc196ffa8d4dbe2f01b36 (patch)
tree873160d46032eea18d82e8ae987353341a14d9be
parentbonding: RCUify bond_set_rx_mode() (diff)
downloadlinux-6f1156383a419a4d19bdc196ffa8d4dbe2f01b36.tar.xz
linux-6f1156383a419a4d19bdc196ffa8d4dbe2f01b36.zip
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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index d6e7f98fbfbf..b2117a161d8b 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);