mirror of https://gitee.com/openkylin/linux.git
sfc: ethtool: Refactor to remove fallthrough comments in case blocks
Converting fallthrough comments to fallthrough; creates warnings in this code when compiled with gcc. This code is overly complicated and reads rather better with a little refactoring and no fallthrough uses at all. Remove the fallthrough comments and simplify the written source code while reducing the object code size. Consolidate duplicated switch/case blocks for IPV4 and IPV6. defconfig x86-64 with sfc: $ size drivers/net/ethernet/sfc/ethtool.o* text data bss dec hex filename 10055 12 0 10067 2753 drivers/net/ethernet/sfc/ethtool.o.new 10135 12 0 10147 27a3 drivers/net/ethernet/sfc/ethtool.o.old Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Martin Habets <mhabets@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7c4046b1c5
commit
c7449b7569
|
@ -582,6 +582,7 @@ efx_ethtool_get_rxnfc(struct net_device *net_dev,
|
||||||
|
|
||||||
case ETHTOOL_GRXFH: {
|
case ETHTOOL_GRXFH: {
|
||||||
struct efx_rss_context *ctx = &efx->rss_context;
|
struct efx_rss_context *ctx = &efx->rss_context;
|
||||||
|
__u64 data;
|
||||||
|
|
||||||
mutex_lock(&efx->rss_lock);
|
mutex_lock(&efx->rss_lock);
|
||||||
if (info->flow_type & FLOW_RSS && info->rss_context) {
|
if (info->flow_type & FLOW_RSS && info->rss_context) {
|
||||||
|
@ -591,35 +592,38 @@ efx_ethtool_get_rxnfc(struct net_device *net_dev,
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info->data = 0;
|
|
||||||
|
data = 0;
|
||||||
if (!efx_rss_active(ctx)) /* No RSS */
|
if (!efx_rss_active(ctx)) /* No RSS */
|
||||||
goto out_unlock;
|
goto out_setdata_unlock;
|
||||||
|
|
||||||
switch (info->flow_type & ~FLOW_RSS) {
|
switch (info->flow_type & ~FLOW_RSS) {
|
||||||
case UDP_V4_FLOW:
|
case UDP_V4_FLOW:
|
||||||
if (ctx->rx_hash_udp_4tuple)
|
|
||||||
/* fall through */
|
|
||||||
case TCP_V4_FLOW:
|
|
||||||
info->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
|
|
||||||
/* fall through */
|
|
||||||
case SCTP_V4_FLOW:
|
|
||||||
case AH_ESP_V4_FLOW:
|
|
||||||
case IPV4_FLOW:
|
|
||||||
info->data |= RXH_IP_SRC | RXH_IP_DST;
|
|
||||||
break;
|
|
||||||
case UDP_V6_FLOW:
|
case UDP_V6_FLOW:
|
||||||
if (ctx->rx_hash_udp_4tuple)
|
if (ctx->rx_hash_udp_4tuple)
|
||||||
/* fall through */
|
data = (RXH_L4_B_0_1 | RXH_L4_B_2_3 |
|
||||||
|
RXH_IP_SRC | RXH_IP_DST);
|
||||||
|
else
|
||||||
|
data = RXH_IP_SRC | RXH_IP_DST;
|
||||||
|
break;
|
||||||
|
case TCP_V4_FLOW:
|
||||||
case TCP_V6_FLOW:
|
case TCP_V6_FLOW:
|
||||||
info->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
|
data = (RXH_L4_B_0_1 | RXH_L4_B_2_3 |
|
||||||
/* fall through */
|
RXH_IP_SRC | RXH_IP_DST);
|
||||||
|
break;
|
||||||
|
case SCTP_V4_FLOW:
|
||||||
case SCTP_V6_FLOW:
|
case SCTP_V6_FLOW:
|
||||||
|
case AH_ESP_V4_FLOW:
|
||||||
case AH_ESP_V6_FLOW:
|
case AH_ESP_V6_FLOW:
|
||||||
|
case IPV4_FLOW:
|
||||||
case IPV6_FLOW:
|
case IPV6_FLOW:
|
||||||
info->data |= RXH_IP_SRC | RXH_IP_DST;
|
data = RXH_IP_SRC | RXH_IP_DST;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
out_setdata_unlock:
|
||||||
|
info->data = data;
|
||||||
out_unlock:
|
out_unlock:
|
||||||
mutex_unlock(&efx->rss_lock);
|
mutex_unlock(&efx->rss_lock);
|
||||||
return rc;
|
return rc;
|
||||||
|
|
Loading…
Reference in New Issue