net: qualcomm: rmnet: eliminate some ifdefs
If IPV6 is not enabled in the kernel configuration, the RMNet checksum code indicates a buffer containing an IPv6 packet is not supported. The same thing happens if a buffer contains something other than an IPv4 or IPv6 packet. We can rearrange things a bit in two functions so that some #ifdef calls can simply be eliminated. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e4517d8a7f
commit
75db5b07f8
1 changed files with 24 additions and 32 deletions
|
@ -431,21 +431,15 @@ int rmnet_map_checksum_downlink_packet(struct sk_buff *skb, u16 len)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skb->protocol == htons(ETH_P_IP)) {
|
if (skb->protocol == htons(ETH_P_IP))
|
||||||
return rmnet_map_ipv4_dl_csum_trailer(skb, csum_trailer, priv);
|
return rmnet_map_ipv4_dl_csum_trailer(skb, csum_trailer, priv);
|
||||||
} else if (skb->protocol == htons(ETH_P_IPV6)) {
|
|
||||||
#if IS_ENABLED(CONFIG_IPV6)
|
|
||||||
return rmnet_map_ipv6_dl_csum_trailer(skb, csum_trailer, priv);
|
|
||||||
#else
|
|
||||||
priv->stats.csum_err_invalid_ip_version++;
|
|
||||||
return -EPROTONOSUPPORT;
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
priv->stats.csum_err_invalid_ip_version++;
|
|
||||||
return -EPROTONOSUPPORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
if (IS_ENABLED(CONFIG_IPV6) && skb->protocol == htons(ETH_P_IPV6))
|
||||||
|
return rmnet_map_ipv6_dl_csum_trailer(skb, csum_trailer, priv);
|
||||||
|
|
||||||
|
priv->stats.csum_err_invalid_ip_version++;
|
||||||
|
|
||||||
|
return -EPROTONOSUPPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rmnet_map_v4_checksum_uplink_packet(struct sk_buff *skb,
|
static void rmnet_map_v4_checksum_uplink_packet(struct sk_buff *skb,
|
||||||
|
@ -462,28 +456,26 @@ static void rmnet_map_v4_checksum_uplink_packet(struct sk_buff *skb,
|
||||||
(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM))))
|
(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM))))
|
||||||
goto sw_csum;
|
goto sw_csum;
|
||||||
|
|
||||||
if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
if (skb->ip_summed != CHECKSUM_PARTIAL)
|
||||||
iphdr = (char *)ul_header +
|
goto sw_csum;
|
||||||
sizeof(struct rmnet_map_ul_csum_header);
|
|
||||||
|
|
||||||
if (skb->protocol == htons(ETH_P_IP)) {
|
iphdr = (char *)ul_header +
|
||||||
rmnet_map_ipv4_ul_csum_header(iphdr, ul_header, skb);
|
sizeof(struct rmnet_map_ul_csum_header);
|
||||||
priv->stats.csum_hw++;
|
|
||||||
return;
|
if (skb->protocol == htons(ETH_P_IP)) {
|
||||||
} else if (skb->protocol == htons(ETH_P_IPV6)) {
|
rmnet_map_ipv4_ul_csum_header(iphdr, ul_header, skb);
|
||||||
#if IS_ENABLED(CONFIG_IPV6)
|
priv->stats.csum_hw++;
|
||||||
rmnet_map_ipv6_ul_csum_header(iphdr, ul_header, skb);
|
return;
|
||||||
priv->stats.csum_hw++;
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
priv->stats.csum_err_invalid_ip_version++;
|
|
||||||
goto sw_csum;
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
priv->stats.csum_err_invalid_ip_version++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_IPV6) && skb->protocol == htons(ETH_P_IPV6)) {
|
||||||
|
rmnet_map_ipv6_ul_csum_header(iphdr, ul_header, skb);
|
||||||
|
priv->stats.csum_hw++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
priv->stats.csum_err_invalid_ip_version++;
|
||||||
|
|
||||||
sw_csum:
|
sw_csum:
|
||||||
memset(ul_header, 0, sizeof(*ul_header));
|
memset(ul_header, 0, sizeof(*ul_header));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue