diff options
author | Jakub Kicinski <kuba@kernel.org> | 2024-12-18 19:28:32 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-12-20 11:57:29 -0800 |
commit | 4a25201aa46ce88e8e31f9ccdec0e4e3dd6bb736 (patch) | |
tree | 6f68eaaf9e2339b1aea7a27b3740faa9f0f0406f /net | |
parent | 246068b86b1c36e4590388ab8f278e21f1997dc1 (diff) | |
download | lwn-4a25201aa46ce88e8e31f9ccdec0e4e3dd6bb736.tar.gz lwn-4a25201aa46ce88e8e31f9ccdec0e4e3dd6bb736.zip |
netdev-genl: avoid empty messages in napi get
Empty netlink responses from do() are not correct (as opposed to
dump() where not dumping anything is perfectly fine).
We should return an error if the target object does not exist,
in this case if the netdev is down we "hide" the NAPI instances.
Fixes: 27f91aaf49b3 ("netdev-genl: Add netlink framework functions for napi")
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241219032833.1165433-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/netdev-genl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/core/netdev-genl.c b/net/core/netdev-genl.c index 2d3ae0cd3ad2..b0772d135efb 100644 --- a/net/core/netdev-genl.c +++ b/net/core/netdev-genl.c @@ -246,8 +246,12 @@ int netdev_nl_napi_get_doit(struct sk_buff *skb, struct genl_info *info) rcu_read_unlock(); rtnl_unlock(); - if (err) + if (err) { + goto err_free_msg; + } else if (!rsp->len) { + err = -ENOENT; goto err_free_msg; + } return genlmsg_reply(rsp, info); |