summaryrefslogtreecommitdiff
path: root/include/linux/debugobjects.h
diff options
context:
space:
mode:
authorZhang Yunfei <zhangyunfei1@kylinos.cn>2026-09-30 17:47:48 +0800
committerJakub Kicinski <kuba@kernel.org>2026-10-05 17:40:30 -0700
commit7b36b48049f4daf164a2ab4b711ac44dc403044f (patch)
tree983dfca93a0daa59bd04493e1137f45e1d18d243 /include/linux/debugobjects.h
parent6986ff35f5bb2acf994468d40af5b9494c5b6c3e (diff)
net: ngbe: clear DRV_LOAD bit when ngbe_open() fails
On NCSI-managed systems, a failed ifup - for example when IRQ or ring allocation fails under memory pressure - leaves the port without either host or firmware driving it: the firmware already handed the port over on open, so out-of-band management of the NIC through that port stops until the next successful ifup. ngbe_open() sets the WX_CFG_PORT_CTL_DRV_LOAD bit to tell the management firmware the host has taken over the port, but every error path returns without clearing it, leaving rings, IRQs and the PHY torn down while the firmware still believes the host owns the port. Roll the bit back on all open error paths, matching ngbe_close() and ngbe_dev_shutdown(), so a failed ifup leaves the same firmware-visible state as if the interface had never been opened. Found by manual code inspection of the open error paths. The deterministic reproduction uses a loadable test module injecting a wx_setup_resources() failure: in a QEMU VM the unfixed driver leaves DRV_LOAD set after a failed open, and with the fix the bit is cleared. No physical ngbe device is involved. Cc: stable+noautosel@kernel.org # LLM fix, not seen in real life Fixes: a1cf597b99a7 ("net: ngbe: Add ngbe mdio bus driver.") Signed-off-by: Zhang Yunfei <zhangyunfei1@kylinos.cn> Reviewed-by: Joe Damato <joe@dama.to> Link: https://patch.msgid.link/20260930094748.1198085-3-zhangyunfei1@kylinos.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions