Commit 812df69b authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

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.

Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 659d0760
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -3097,7 +3097,17 @@ static int lio_set_fecparam(struct net_device *netdev,
	return 0;
}

#define LIO_ETHTOOL_COALESCE	(ETHTOOL_COALESCE_RX_USECS |		\
				 ETHTOOL_COALESCE_MAX_FRAMES |		\
				 ETHTOOL_COALESCE_USE_ADAPTIVE |	\
				 ETHTOOL_COALESCE_RX_MAX_FRAMES_LOW |	\
				 ETHTOOL_COALESCE_TX_MAX_FRAMES_LOW |	\
				 ETHTOOL_COALESCE_RX_MAX_FRAMES_HIGH |	\
				 ETHTOOL_COALESCE_TX_MAX_FRAMES_HIGH |	\
				 ETHTOOL_COALESCE_PKT_RATE_RX_USECS)

static const struct ethtool_ops lio_ethtool_ops = {
	.supported_coalesce_params = LIO_ETHTOOL_COALESCE,
	.get_link_ksettings	= lio_get_link_ksettings,
	.set_link_ksettings	= lio_set_link_ksettings,
	.get_fecparam		= lio_get_fecparam,
@@ -3128,6 +3138,7 @@ static const struct ethtool_ops lio_ethtool_ops = {
};

static const struct ethtool_ops lio_vf_ethtool_ops = {
	.supported_coalesce_params = LIO_ETHTOOL_COALESCE,
	.get_link_ksettings	= lio_get_link_ksettings,
	.get_link		= ethtool_op_get_link,
	.get_drvinfo		= lio_get_vf_drvinfo,
+5 −0
Original line number Diff line number Diff line
@@ -211,6 +211,11 @@ bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,
	 ETHTOOL_COALESCE_TX_MAX_FRAMES_IRQ)
#define ETHTOOL_COALESCE_USE_ADAPTIVE					\
	(ETHTOOL_COALESCE_USE_ADAPTIVE_RX | ETHTOOL_COALESCE_USE_ADAPTIVE_TX)
#define ETHTOOL_COALESCE_PKT_RATE_RX_USECS				\
	(ETHTOOL_COALESCE_USE_ADAPTIVE_RX |				\
	 ETHTOOL_COALESCE_RX_USECS_LOW | ETHTOOL_COALESCE_RX_USECS_HIGH | \
	 ETHTOOL_COALESCE_PKT_RATE_LOW | ETHTOOL_COALESCE_PKT_RATE_HIGH | \
	 ETHTOOL_COALESCE_RATE_SAMPLE_INTERVAL)

/**
 * struct ethtool_ops - optional netdev operations