diff options
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index ca24c90d3796..1d66fb42c9cb 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1940,7 +1940,8 @@ int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *first, | |||
1940 | if (xdst->genid != dst->xfrm->genid) | 1940 | if (xdst->genid != dst->xfrm->genid) |
1941 | return 0; | 1941 | return 0; |
1942 | 1942 | ||
1943 | if (strict && fl && dst->xfrm->props.mode != XFRM_MODE_TUNNEL && | 1943 | if (strict && fl && |
1944 | !(dst->xfrm->mode->flags & XFRM_MODE_FLAG_TUNNEL) && | ||
1944 | !xfrm_state_addr_flow_check(dst->xfrm, fl, family)) | 1945 | !xfrm_state_addr_flow_check(dst->xfrm, fl, family)) |
1945 | return 0; | 1946 | return 0; |
1946 | 1947 | ||
@@ -2291,7 +2292,8 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol, | |||
2291 | if (!migrate_tmpl_match(mp, &pol->xfrm_vec[i])) | 2292 | if (!migrate_tmpl_match(mp, &pol->xfrm_vec[i])) |
2292 | continue; | 2293 | continue; |
2293 | n++; | 2294 | n++; |
2294 | if (pol->xfrm_vec[i].mode != XFRM_MODE_TUNNEL) | 2295 | if (pol->xfrm_vec[i].mode != XFRM_MODE_TUNNEL && |
2296 | pol->xfrm_vec[i].mode != XFRM_MODE_BEET) | ||
2295 | continue; | 2297 | continue; |
2296 | /* update endpoints */ | 2298 | /* update endpoints */ |
2297 | memcpy(&pol->xfrm_vec[i].id.daddr, &mp->new_daddr, | 2299 | memcpy(&pol->xfrm_vec[i].id.daddr, &mp->new_daddr, |