In do_grfxh(), if rss_context is non-zero, we must not fall back to
 do_grxfhindir() if ETHTOOL_GRSSH fails, for that reads the default RSS
 context and not the one specified.

Fixes: f5d55b967e0c ("ethtool: add support for extra RSS contexts and RSS 
steering filters")
Signed-off-by: Edward Cree <ec...@solarflare.com>
---
 ethtool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ethtool.c b/ethtool.c
index da7421c..fb6c26d 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -3738,7 +3738,7 @@ static int do_grxfh(struct cmd_context *ctx)
        rss_head.cmd = ETHTOOL_GRSSH;
        rss_head.rss_context = rss_context;
        err = send_ioctl(ctx, &rss_head);
-       if (err < 0 && errno == EOPNOTSUPP) {
+       if (err < 0 && errno == EOPNOTSUPP && !rss_context) {
                return do_grxfhindir(ctx, &ring_count);
        } else if (err < 0) {
                perror("Cannot get RX flow hash indir size and/or key size");

Reply via email to