[PATCH net v2 0/2] net: ngbe: fix error handling in resume and open paths

From: Zhang Yunfei

Date: Tue Sep 22 2026 - 06:09:49 EST


Two error-handling fixes for the ngbe PM/open paths.

ngbe_resume() declared err as u32 and returned 0 unconditionally, so a
failed ngbe_reset_hw(), wx_init_interrupt_scheme() or ngbe_open() left
the device in netif_device_detach() state with a broken interrupt
scheme while the PM core was told the resume succeeded; the reset task
bails out on the missing netif_device_present() check, so the device
cannot self-heal. Patch 1 fixes the type and propagates all of these
errors, making the whole tail of the resume path consistent with the
pci_enable_device_mem() failure path at the top, which already reports
its error.

ngbe_open() sets the WX_CFG_PORT_CTL_DRV_LOAD bit to tell the
management firmware the host has taken over the port, but no error
path cleared it, leaving the firmware owning a port whose rings and
IRQs are gone. Patch 2 rolls the bit back on all open error paths,
matching ngbe_close() and ngbe_dev_shutdown().

---
Changes in v2:
- also propagate the ngbe_reset_hw() failure, so the whole tail of
ngbe_resume() reports errors to the PM core (Sashiko review);
- drop the inaccurate "device can be re-probed" claim: the PM core
records and logs the failure, there is no re-probe (Sashiko review);
- patch 2/2 unchanged.

Link: https://lore.kernel.org/netdev/20260917090050.1927999-1-zhangyunfei1@xxxxxxxxxx/T/#u/


Zhang Yunfei (2):
net: ngbe: propagate resume errors to the PM core
net: ngbe: clear DRV_LOAD bit when ngbe_open() fails

drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)


base-commit: 93f51579e7df248780214094418f205253383cc5
--
2.25.1