This check is redundant because xfrm_ip2inner_mode no longer returns NULL, because of the change in commit c9500d7b7de8 ("xfrm: store xfrm_mode directly, not its address"). Signed-off-by: Jianbo Liu Reviewed-by: Cosmin Ratiu --- V2: - Change subject prefix, and send sperately to "ipsec-next". net/ipv4/ip_vti.c | 8 +------- net/ipv6/ip6_vti.c | 8 +------- net/xfrm/xfrm_interface_core.c | 8 +------- net/xfrm/xfrm_policy.c | 9 ++------- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c index 95b6bb78fcd2..91e889965918 100644 --- a/net/ipv4/ip_vti.c +++ b/net/ipv4/ip_vti.c @@ -120,14 +120,8 @@ static int vti_rcv_cb(struct sk_buff *skb, int err) inner_mode = &x->inner_mode; - if (x->sel.family == AF_UNSPEC) { + if (x->sel.family == AF_UNSPEC) inner_mode = xfrm_ip2inner_mode(x, XFRM_MODE_SKB_CB(skb)->protocol); - if (inner_mode == NULL) { - XFRM_INC_STATS(dev_net(skb->dev), - LINUX_MIB_XFRMINSTATEMODEERROR); - return -EINVAL; - } - } family = inner_mode->family; diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c index ad5290be4dd6..67030918279c 100644 --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -364,14 +364,8 @@ static int vti6_rcv_cb(struct sk_buff *skb, int err) inner_mode = &x->inner_mode; - if (x->sel.family == AF_UNSPEC) { + if (x->sel.family == AF_UNSPEC) inner_mode = xfrm_ip2inner_mode(x, XFRM_MODE_SKB_CB(skb)->protocol); - if (inner_mode == NULL) { - XFRM_INC_STATS(dev_net(skb->dev), - LINUX_MIB_XFRMINSTATEMODEERROR); - return -EINVAL; - } - } family = inner_mode->family; diff --git a/net/xfrm/xfrm_interface_core.c b/net/xfrm/xfrm_interface_core.c index 330a05286a56..7084c7e6cf7a 100644 --- a/net/xfrm/xfrm_interface_core.c +++ b/net/xfrm/xfrm_interface_core.c @@ -389,14 +389,8 @@ static int xfrmi_rcv_cb(struct sk_buff *skb, int err) if (xnet) { inner_mode = &x->inner_mode; - if (x->sel.family == AF_UNSPEC) { + if (x->sel.family == AF_UNSPEC) inner_mode = xfrm_ip2inner_mode(x, XFRM_MODE_SKB_CB(skb)->protocol); - if (inner_mode == NULL) { - XFRM_INC_STATS(dev_net(skb->dev), - LINUX_MIB_XFRMINSTATEMODEERROR); - return -EINVAL; - } - } if (!xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, inner_mode->family)) diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 62486f866975..a1d995db6293 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2711,15 +2711,10 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy, */ xfrm_dst_set_child(xdst_prev, &xdst->u.dst); - if (xfrm[i]->sel.family == AF_UNSPEC) { + if (xfrm[i]->sel.family == AF_UNSPEC) inner_mode = xfrm_ip2inner_mode(xfrm[i], xfrm_af2proto(family)); - if (!inner_mode) { - err = -EAFNOSUPPORT; - dst_release(dst); - goto put_states; - } - } else + else inner_mode = &xfrm[i]->inner_mode; xdst->route = dst; -- 2.49.0