]> git.ipfire.org Git - thirdparty/linux.git/commit
net: mana: Skip redundant detach on already-detached port
authorDipayaan Roy <dipayanroy@linux.microsoft.com>
Mon, 25 May 2026 08:08:25 +0000 (01:08 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 28 May 2026 23:33:42 +0000 (16:33 -0700)
commit5b05aa36ee24297d7296ca58dfd8c448d0e4cda3
treeb19f7f767091dc36ff861907752ada81a3c8a841
parent17bfe0a8c014ee1d542ad352cd6a0a505361664a
net: mana: Skip redundant detach on already-detached port

When mana_per_port_queue_reset_work_handler() runs after a previous
detach succeeded but attach failed, the port is left in a detached
state with apc->tx_qp and apc->rxqs already freed. Calling
mana_detach() again unconditionally leads to NULL pointer dereferences
during queue teardown.

Add an early exit in mana_detach() when the port is already in
detached state (!netif_device_present) for non-close callers, making
it safe to call idempotently. This allows the queue reset handler and
other recovery paths to simply retry mana_attach() without redundant
teardown.

Fixes: 3b194343c250 ("net: mana: Implement ndo_tx_timeout and serialize queue resets per port.")
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Dipayaan Roy <dipayanroy@linux.microsoft.com>
Link: https://patch.msgid.link/20260525081129.1230035-3-dipayanroy@linux.microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/microsoft/mana/mana_en.c