diff options
| author | Paolo Abeni <pabeni@redhat.com> | 2026-05-05 13:16:25 +0300 |
|---|---|---|
| committer | Paolo Abeni <pabeni@redhat.com> | 2026-05-05 13:16:26 +0300 |
| commit | 6bdcbd79ad12944ad46f42f0bdeb4e5b53d852d7 (patch) | |
| tree | 7a625f23b27038bbd3a069adb7aacdd8ddf1d80e /scripts/objdiff | |
| parent | 07d99587396024932e02474c3a5bede71d108454 (diff) | |
| parent | 3985c9a56da49af8b2e45cb1fa55c03c89b1d471 (diff) | |
| download | linux-6bdcbd79ad12944ad46f42f0bdeb4e5b53d852d7.tar.xz | |
Merge branch 'net-mana-fix-mana_destroy_rxq-cleanup-for-partial-rxq-init'
Dipayaan Roy says:
====================
net: mana: Fix mana_destroy_rxq() cleanup for partial RXQ init
When mana_create_rxq() fails partway through initialization (e.g. the
hardware rejects the WQ object creation), the error path calls
mana_destroy_rxq() to tear down a partially-initialized RXQ.
This exposed multiple issues in mana_destroy_rxq() path, as it assumed
the RXQ was always fully initialized, leading to multiple issues:
1. xdp_rxq_info_unreg() was called on an unregistered xdp_rxq,
triggering a WARN_ON ("Driver BUG") in net/core/xdp.c.
2. mana_destroy_wq_obj() was called with INVALID_MANA_HANDLE,
sending a bogus destroy command to the hardware.
3. mana_deinit_cq() was called twice — once inside mana_destroy_rxq()
and again in mana_create_rxq()'s error path — causing a
use-after-free since mana_destroy_rxq() frees the rxq first.
This was observed during ethtool ring parameter changes when the
hardware returned an error creating the RXQ. This series makes
mana_destroy_rxq() safe to call at any stage of RXQ initialization
by guarding each teardown step, and removes the redundant cleanup
in mana_create_rxq().
====================
Link: https://patch.msgid.link/20260430035935.1859220-1-dipayanroy@linux.microsoft.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
