diff options
| author | Linus Walleij <linusw@kernel.org> | 2026-09-14 23:26:42 +0200 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-09-16 17:45:00 -0700 |
| commit | c5faf1d4df8f5be608267dfa87cc819dde0bef97 (patch) | |
| tree | fc792d6cd88189f4f801c3066899ace80c78efb9 /include/linux/debugobjects.h | |
| parent | ed502e4856856358b304d0c04f8e33364547d1d2 (diff) | |
net: ethernet: cortina: Bound RX descriptor processing
NAPI budgets received packets, so gmac_rx() only consumes budget when an
EOF descriptor completes a frame. A malformed descriptor stream without
EOF can consequently make one poll consume the entire snapshotted RX ring,
which may contain up to 32768 descriptors. The error paths can also flood
the kernel log while doing so.
Keep the packet budget EOF-based, but impose a separate descriptor limit
which allows MAX_SKB_FRAGS descriptors for every packet in the budget. If
the limit is reached with descriptors still pending, return the full NAPI
budget to retain ownership and continue in another poll. Ratelimit errors
reported from malformed descriptor paths.
Signed-off-by: Linus Walleij <linusw@kernel.org>
Link: https://patch.msgid.link/20260914-b4-gemini-ethernet-fixes-2-v2-2-5ab39a047b90@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions
