|
@@ -2732,14 +2732,14 @@ static const void *xfrm_get_dst_nexthop(const struct dst_entry *dst,
|
|
while (dst->xfrm) {
|
|
while (dst->xfrm) {
|
|
const struct xfrm_state *xfrm = dst->xfrm;
|
|
const struct xfrm_state *xfrm = dst->xfrm;
|
|
|
|
|
|
|
|
+ dst = xfrm_dst_child(dst);
|
|
|
|
+
|
|
if (xfrm->props.mode == XFRM_MODE_TRANSPORT)
|
|
if (xfrm->props.mode == XFRM_MODE_TRANSPORT)
|
|
continue;
|
|
continue;
|
|
if (xfrm->type->flags & XFRM_TYPE_REMOTE_COADDR)
|
|
if (xfrm->type->flags & XFRM_TYPE_REMOTE_COADDR)
|
|
daddr = xfrm->coaddr;
|
|
daddr = xfrm->coaddr;
|
|
else if (!(xfrm->type->flags & XFRM_TYPE_LOCAL_COADDR))
|
|
else if (!(xfrm->type->flags & XFRM_TYPE_LOCAL_COADDR))
|
|
daddr = &xfrm->id.daddr;
|
|
daddr = &xfrm->id.daddr;
|
|
-
|
|
|
|
- dst = xfrm_dst_child(dst);
|
|
|
|
}
|
|
}
|
|
return daddr;
|
|
return daddr;
|
|
}
|
|
}
|