diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index dbf4620768d61ee267f07fc0f0df7e47d2746c81..98ec53bd3ac7d3680d1dc682a2e0d2a04ea57b13 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -889,7 +889,9 @@ int xfrm_lookup(struct dst_entry **dst_p, struct flowi *fl, xfrm_pol_put(policy); if (dst) dst_free(dst); - goto restart; + + err = -EHOSTUNREACH; + goto error; } dst->next = policy->bundles; policy->bundles = dst;