net: don't dump Tx and uninitialized NAPIs
Subsystems (2)
Jakub Kicinski
maintainerPATCH 1/1 net: don't dump Tx and uninitialized NAPIs
We use NAPI ID as the key for continuing dumps. We also depend on the NAPIs being sorted by ID within the driver list. Tx NAPIs (which don't have an ID assigned) break this expectation, it's not currently possible to dump them reliably. Since Tx NAPIs are relatively rare, and can't be used in doit (GET or SET) hide them from the dump API as well.
---
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
--- net/core/netdev-genl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
net/core/netdev-genl.c +3 -2
@@ -176,8 +176,7 @@ netdev_nl_napi_fill_one(struct sk_buff *rsp, struct napi_struct *napi,if (!hdr)return -EMSGSIZE ; -if (napi->napi_id >=MIN_NAPI_ID && -nla_put_u32 (rsp,NETDEV_A_NAPI_ID , napi->napi_id)) +if (nla_put_u32 (rsp,NETDEV_A_NAPI_ID , napi->napi_id)) goto nla_put_failure;if (nla_put_u32 (rsp,NETDEV_A_NAPI_IFINDEX , napi->dev->ifindex))
@@ -268,6 +267,8 @@ netdev_nl_napi_dump_one(struct net_device *netdev, struct sk_buff *rsp,return err;list_for_each_entry (napi, &netdev->napi_list, dev_list) { +if (napi->napi_id <MIN_NAPI_ID ) +continue ;if (ctx->napi_id && napi->napi_id >= ctx->napi_id)continue ;
Signature · 1 line
2.47.1
Quoted 10 lines · Jakub Kicinski
We use NAPI ID as the key for continuing dumps. We also depend on the NAPIs being sorted by ID within the driver list. Tx NAPIs (which don't have an ID assigned) break this expectation, it's not currently possible to dump them reliably. Since Tx NAPIs are relatively rare, and can't be used in doit (GET or SET) hide them from the dump API as well.
Fixes 27f91aaf49b3 ("netdev-genl: Add netlink framework functions for napi")Signed-off-by Jakub Kicinski <[email protected]>
This patch was applied to netdev/net.git (main) by Paolo Abeni <[email protected]>:
Hello:
This patch was applied to netdev/net.git (main)
by Paolo Abeni <[email protected]>:
Quoted 8 lines · On Fri, 3 Jan 2025 10:32:07 -0800 you wrote:
We use NAPI ID as the key for continuing dumps. We also depend on the NAPIs being sorted by ID within the driver list. Tx NAPIs (which don't have an ID assigned) break this expectation, it's not currently possible to dump them reliably. Since Tx NAPIs are relatively rare, and can't be used in doit (GET or SET) hide them from the dump API as well.
[...]
Here is the summary with links:
- [net] net: don't dump Tx and uninitialized NAPIs
https://git.kernel.org/netdev/net/c/fd48f071a3d6
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html