xfrm: Force SA to be lookup again if SA in acquire state
authorFan Du <fan.du@windriver.com>
Mon, 23 Sep 2013 09:18:25 +0000 (17:18 +0800)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 1 Oct 2013 08:09:33 +0000 (10:09 +0200)
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>
net/xfrm/xfrm_state.c

index d6e7f98fbfbffcdeb778c32a7a2d51bc987dc802..b2117a161d8bdc71f4aad94bafab629ac1025e69 100644 (file)
@@ -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);