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

Gang Li posted 1 patch 2 years, 3 months ago
netlink/settings.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH RESEND ethtool] netlink: Allow nl_sset return -EOPNOTSUPP to fallback to do_sset
Posted by Gang Li 2 years, 3 months ago
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@linux.dev>
---
 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
Re: [PATCH RESEND ethtool] netlink: Allow nl_sset return -EOPNOTSUPP to fallback to do_sset
Posted by Michal Kubecek 2 years, 3 months ago
On Mon, Aug 21, 2023 at 11:34:19AM +0800, Gang Li wrote:
> 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@linux.dev>

Applied, thank you.

I only changed the Fixes tag to commit 6c19c0d559c8 ("netlink: use
genetlink ops information to decide about fallback") as that's where the
need for special handling of -EOPNOTSUPP started.

Michal