[PATCH RESEND ethtool] netlink: Allow nl_sset return -EOPNOTSUPP to fallback to do_sset

From: Gang Li
Date: Sun Aug 20 2023 - 23:36:56 EST


Currently, nl_sset treats any negative value returned by nl_parser
(including -EOPNOTSUPP) as `1`. Consequently, netlink_run_handler
directly calls exit without returning to main and invoking do_sset
through ioctl_init.

To fallback to do_sset, this commit allows nl_sset return -EOPNOTSUPP.

Fixes: 392b12e ("netlink: add netlink handler for sset (-s)")
Signed-off-by: Gang Li <gang.li@xxxxxxxxx>
---
netlink/settings.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/netlink/settings.c b/netlink/settings.c
index dda4ac9..2af933d 100644
--- a/netlink/settings.c
+++ b/netlink/settings.c
@@ -1244,6 +1244,9 @@ int nl_sset(struct cmd_context *ctx)
nlctx->devname = ctx->devname;

ret = nl_parser(nlctx, sset_params, NULL, PARSER_GROUP_MSG, msgbuffs);
+ if (ret == -EOPNOTSUPP)
+ return ret;
+
if (ret < 0) {
ret = 1;
goto out_free;
--
2.20.1