On Fri May 2, 2025 at 4:13 PM CEST, Marc Kleine-Budde wrote: > If a driver is removed, the driver framework invokes the driver's > remove callback. A CAN driver's remove function calls > unregister_candev(), which calls net_device_ops::ndo_stop further down > in the call stack for interfaces which are in the "up" state. > > The removal of the module causes the a warning, as ^^^ Minor typo here. Otherwise this looks good to me. Reviewed-by: Markus Schneider-Pargmann > can_rx_offload_del() deletes the NAPI, while it is still active, > because the interface is still up. > > To fix the warning, first unregister the network interface, which > calls net_device_ops::ndo_stop, which disables the NAPI, and then call > can_rx_offload_del(). > > Fixes: ff60bfbaf67f ("can: rockchip_canfd: add driver for Rockchip CAN-FD controller") > Cc: stable@vger.kernel.org > Signed-off-by: Marc Kleine-Budde > --- > drivers/net/can/rockchip/rockchip_canfd-core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/can/rockchip/rockchip_canfd-core.c b/drivers/net/can/rockchip/rockchip_canfd-core.c > index 7107a37da36c..c3fb3176ce42 100644 > --- a/drivers/net/can/rockchip/rockchip_canfd-core.c > +++ b/drivers/net/can/rockchip/rockchip_canfd-core.c > @@ -937,8 +937,8 @@ static void rkcanfd_remove(struct platform_device *pdev) > struct rkcanfd_priv *priv = platform_get_drvdata(pdev); > struct net_device *ndev = priv->ndev; > > - can_rx_offload_del(&priv->offload); > rkcanfd_unregister(priv); > + can_rx_offload_del(&priv->offload); > free_candev(ndev); > } >