ethtool: don't propagate EOPNOTSUPP from dumps
authorJakub Kicinski <kuba@kernel.org>
Sun, 26 Nov 2023 22:58:06 +0000 (14:58 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Dec 2023 07:52:23 +0000 (08:52 +0100)
[ Upstream commit cbeb989e41f4094f54bec2cecce993f26f547bea ]

The default dump handler needs to clear ret before returning.
Otherwise if the last interface returns an inconsequential
error this error will propagate to user space.

This may confuse user space (ethtool CLI seems to ignore it,
but YNL doesn't). It will also terminate the dump early
for mutli-skb dump, because netlink core treats EOPNOTSUPP
as a real error.

Fixes: 728480f12442 ("ethtool: default handlers for GET requests")
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20231126225806.2143528-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/ethtool/netlink.c

index 3bbd5af..fe3553f 100644 (file)
@@ -505,6 +505,7 @@ static int ethnl_default_dumpit(struct sk_buff *skb,
                                ret = skb->len;
                        break;
                }
+               ret = 0;
        }
        rtnl_unlock();