netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] ethtool: fix the check logic of at least one channel for RX/TX
@ 2021-02-23 13:24 Simon Horman
  2021-02-23 17:01 ` Jakub Kicinski
  2021-02-24  0:32 ` Michal Kubecek
  0 siblings, 2 replies; 7+ messages in thread
From: Simon Horman @ 2021-02-23 13:24 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski
  Cc: netdev, oss-drivers, Yinjun Zhang, Simon Horman, Louis Peens

From: Yinjun Zhang <yinjun.zhang@corigine.com>

The command "ethtool -L <intf> combined 0" may clean the RX/TX channel
count and skip the error path, since the attrs
tb[ETHTOOL_A_CHANNELS_RX_COUNT] and tb[ETHTOOL_A_CHANNELS_TX_COUNT]
are NULL in this case when recent ethtool is used.

Tested using ethtool v5.10.

Fixes: 7be92514b99c ("ethtool: check if there is at least one channel for TX/RX in the core")
Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: Louis Peens <louis.peens@netronome.com>
---
 net/ethtool/channels.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/ethtool/channels.c b/net/ethtool/channels.c
index 25a9e566ef5c..e35ef627f61f 100644
--- a/net/ethtool/channels.c
+++ b/net/ethtool/channels.c
@@ -175,14 +175,14 @@ int ethnl_set_channels(struct sk_buff *skb, struct genl_info *info)
 
 	/* ensure there is at least one RX and one TX channel */
 	if (!channels.combined_count && !channels.rx_count)
-		err_attr = tb[ETHTOOL_A_CHANNELS_RX_COUNT];
+		err_attr = mod_combined ? tb[ETHTOOL_A_CHANNELS_COMBINED_COUNT] :
+					  tb[ETHTOOL_A_CHANNELS_RX_COUNT];
 	else if (!channels.combined_count && !channels.tx_count)
-		err_attr = tb[ETHTOOL_A_CHANNELS_TX_COUNT];
+		err_attr = mod_combined ? tb[ETHTOOL_A_CHANNELS_COMBINED_COUNT] :
+					  tb[ETHTOOL_A_CHANNELS_TX_COUNT];
 	else
 		err_attr = NULL;
 	if (err_attr) {
-		if (mod_combined)
-			err_attr = tb[ETHTOOL_A_CHANNELS_COMBINED_COUNT];
 		ret = -EINVAL;
 		NL_SET_ERR_MSG_ATTR(info->extack, err_attr, "requested channel counts would result in no RX or TX channel being configured");
 		goto out_ops;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-02-24  1:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-23 13:24 [PATCH net] ethtool: fix the check logic of at least one channel for RX/TX Simon Horman
2021-02-23 17:01 ` Jakub Kicinski
2021-02-24  0:43   ` Michal Kubecek
2021-02-24  0:32 ` Michal Kubecek
2021-02-24  1:02   ` Jakub Kicinski
2021-02-24  1:10     ` Michal Kubecek
2021-02-24  1:21     ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).