diff options
-rw-r--r-- | net/xfrm/xfrm_policy.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 150d46633ce6..625b3fca5704 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -2732,14 +2732,14 @@ static const void *xfrm_get_dst_nexthop(const struct dst_entry *dst, | |||
2732 | while (dst->xfrm) { | 2732 | while (dst->xfrm) { |
2733 | const struct xfrm_state *xfrm = dst->xfrm; | 2733 | const struct xfrm_state *xfrm = dst->xfrm; |
2734 | 2734 | ||
2735 | dst = xfrm_dst_child(dst); | ||
2736 | |||
2735 | if (xfrm->props.mode == XFRM_MODE_TRANSPORT) | 2737 | if (xfrm->props.mode == XFRM_MODE_TRANSPORT) |
2736 | continue; | 2738 | continue; |
2737 | if (xfrm->type->flags & XFRM_TYPE_REMOTE_COADDR) | 2739 | if (xfrm->type->flags & XFRM_TYPE_REMOTE_COADDR) |
2738 | daddr = xfrm->coaddr; | 2740 | daddr = xfrm->coaddr; |
2739 | else if (!(xfrm->type->flags & XFRM_TYPE_LOCAL_COADDR)) | 2741 | else if (!(xfrm->type->flags & XFRM_TYPE_LOCAL_COADDR)) |
2740 | daddr = &xfrm->id.daddr; | 2742 | daddr = &xfrm->id.daddr; |
2741 | |||
2742 | dst = xfrm_dst_child(dst); | ||
2743 | } | 2743 | } |
2744 | return daddr; | 2744 | return daddr; |
2745 | } | 2745 | } |