History

net: liquidio: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let the core reject unsupported coalescing parameters. This driver did not previously reject unsupported parameters.

Jakub Kicinski committed 6 years ago

Commit 812df691 parent 659d0762 files · +16 −0Browse files

Unified · Split

2 files
  1. drivers/net/ethernet/cavium/liquidio/lio_ethtool.c +11 −0
  2. include/linux/ethtool.h +5 −0
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c+11−0
@@ -3097,7 +3097,17 @@ static int lio_set_fecparam(struct net_device *netdev, · 3096 unmodified lines
30973097 return 0;
30983098 }
30993099
3100+#define LIO_ETHTOOL_COALESCE (ETHTOOL_COALESCE_RX_USECS | \
3101+ ETHTOOL_COALESCE_MAX_FRAMES | \
3102+ ETHTOOL_COALESCE_USE_ADAPTIVE | \
3103+ ETHTOOL_COALESCE_RX_MAX_FRAMES_LOW | \
3104+ ETHTOOL_COALESCE_TX_MAX_FRAMES_LOW | \
3105+ ETHTOOL_COALESCE_RX_MAX_FRAMES_HIGH | \
3106+ ETHTOOL_COALESCE_TX_MAX_FRAMES_HIGH | \
3107+ ETHTOOL_COALESCE_PKT_RATE_RX_USECS)
3108+
31003109 static const struct ethtool_ops lio_ethtool_ops = {
3110+ .supported_coalesce_params = LIO_ETHTOOL_COALESCE,
31013111 .get_link_ksettings = lio_get_link_ksettings,
31023112 .set_link_ksettings = lio_set_link_ksettings,
31033113 .get_fecparam = lio_get_fecparam,
@@ -3128,6 +3138,7 @@ static const struct ethtool_ops lio_ethtool_ops = { · 24 unmodified lines
31283138 };
31293139
31303140 static const struct ethtool_ops lio_vf_ethtool_ops = {
3141+ .supported_coalesce_params = LIO_ETHTOOL_COALESCE,
31313142 .get_link_ksettings = lio_get_link_ksettings,
31323143 .get_link = ethtool_op_get_link,
31333144 .get_drvinfo = lio_get_vf_drvinfo,
include/linux/ethtool.h+5−0
@@ -211,6 +211,11 @@ bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32, · 210 unmodified lines
211211 ETHTOOL_COALESCE_TX_MAX_FRAMES_IRQ)
212212 #define ETHTOOL_COALESCE_USE_ADAPTIVE \
213213 (ETHTOOL_COALESCE_USE_ADAPTIVE_RX | ETHTOOL_COALESCE_USE_ADAPTIVE_TX)
214+#define ETHTOOL_COALESCE_PKT_RATE_RX_USECS \
215+ (ETHTOOL_COALESCE_USE_ADAPTIVE_RX | \
216+ ETHTOOL_COALESCE_RX_USECS_LOW | ETHTOOL_COALESCE_RX_USECS_HIGH | \
217+ ETHTOOL_COALESCE_PKT_RATE_LOW | ETHTOOL_COALESCE_PKT_RATE_HIGH | \
218+ ETHTOOL_COALESCE_RATE_SAMPLE_INTERVAL)
214219
215220 /**
216221 * struct ethtool_ops - optional netdev operations