Set ethtool_ops->supported_coalesce_params to let the core reject unsupported coalescing parameters. This driver did not previously reject unsupported parameters.
Unified · Split
| @@ -3097,7 +3097,17 @@ static int lio_set_fecparam(struct net_device *netdev, · 3096 unmodified lines | ||
| 3097 | 3097 | return 0; |
| 3098 | 3098 | } |
| 3099 | 3099 | |
| 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 | + | |
| 3100 | 3109 | static const struct ethtool_ops lio_ethtool_ops = { |
| 3110 | + .supported_coalesce_params = LIO_ETHTOOL_COALESCE, | |
| 3101 | 3111 | .get_link_ksettings = lio_get_link_ksettings, |
| 3102 | 3112 | .set_link_ksettings = lio_set_link_ksettings, |
| 3103 | 3113 | .get_fecparam = lio_get_fecparam, |
| @@ -3128,6 +3138,7 @@ static const struct ethtool_ops lio_ethtool_ops = { · 24 unmodified lines | ||
| 3128 | 3138 | }; |
| 3129 | 3139 | |
| 3130 | 3140 | static const struct ethtool_ops lio_vf_ethtool_ops = { |
| 3141 | + .supported_coalesce_params = LIO_ETHTOOL_COALESCE, | |
| 3131 | 3142 | .get_link_ksettings = lio_get_link_ksettings, |
| 3132 | 3143 | .get_link = ethtool_op_get_link, |
| 3133 | 3144 | .get_drvinfo = lio_get_vf_drvinfo, |
| @@ -211,6 +211,11 @@ bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32, · 210 unmodified lines | ||
| 211 | 211 | ETHTOOL_COALESCE_TX_MAX_FRAMES_IRQ) |
| 212 | 212 | #define ETHTOOL_COALESCE_USE_ADAPTIVE \ |
| 213 | 213 | (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) | |
| 214 | 219 | |
| 215 | 220 | /** |
| 216 | 221 | * struct ethtool_ops - optional netdev operations |