]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
octeon_ep: Fix host hang issue during device reboot
authorSathesh B Edara <sedara@marvell.com>
Tue, 29 Apr 2025 11:46:24 +0000 (04:46 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 1 May 2025 14:11:44 +0000 (07:11 -0700)
When the host loses heartbeat messages from the device,
the driver calls the device-specific ndo_stop function,
which frees the resources. If the driver is unloaded in
this scenario, it calls ndo_stop again, attempting to free
resources that have already been freed, leading to a host
hang issue. To resolve this, dev_close should be called
instead of the device-specific stop function.dev_close
internally calls ndo_stop to stop the network interface
and performs additional cleanup tasks. During the driver
unload process, if the device is already down, ndo_stop
is not called.

Fixes: 5cb96c29aa0e ("octeon_ep: add heartbeat monitor")
Signed-off-by: Sathesh B Edara <sedara@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250429114624.19104-1-sedara@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeon_ep/octep_main.c

index 0a679e95196fedfe7cadf270b46231c9a2ef48cd..24499bb36c00578c9b2bdbe90eff01fed3d28e98 100644 (file)
@@ -1223,7 +1223,7 @@ static void octep_hb_timeout_task(struct work_struct *work)
                miss_cnt);
        rtnl_lock();
        if (netif_running(oct->netdev))
-               octep_stop(oct->netdev);
+               dev_close(oct->netdev);
        rtnl_unlock();
 }