Hi All, I will fix the failed patches and send to 4.9, 4.14, 4.19, 5.4 , 5.10 and 5.15 stable trees. Cheers, Biju > -----Original Message----- > From: gregkh@xxxxxxxxxxxxxxxxxxx <gregkh@xxxxxxxxxxxxxxxxxxx> > Sent: 04 January 2023 14:17 > To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>; leonro@xxxxxxxxxx; > pabeni@xxxxxxxxxx > Cc: stable@xxxxxxxxxxxxxxx > Subject: FAILED: patch "[PATCH] ravb: Fix "failed to switch device to config > mode" message" failed to apply to 4.9-stable tree > > > The patch below does not apply to the 4.9-stable tree. > If someone wants it applied there, or to any other stable or longterm tree, > then please email the backport, including the original git commit id to > <stable@xxxxxxxxxxxxxxx>. > > Possible dependencies: > > c72a7e42592b ("ravb: Fix "failed to switch device to config mode" message > during unbind") > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From c72a7e42592b2e18d862cf120876070947000d7a Mon Sep 17 00:00:00 2001 > From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > Date: Wed, 14 Dec 2022 10:51:18 +0000 > Subject: [PATCH] ravb: Fix "failed to switch device to config mode" message > during unbind > > This patch fixes the error "ravb 11c20000.ethernet eth0: failed to switch > device to config mode" during unbind. > > We are doing register access after pm_runtime_put_sync(). > > We usually do cleanup in reverse order of init. Currently in remove(), the > "pm_runtime_put_sync" is not in reverse order. > > Probe > reset_control_deassert(rstc); > pm_runtime_enable(&pdev->dev); > pm_runtime_get_sync(&pdev->dev); > > remove > pm_runtime_put_sync(&pdev->dev); > unregister_netdev(ndev); > .. > ravb_mdio_release(priv); > pm_runtime_disable(&pdev->dev); > > Consider the call to unregister_netdev() unregister_netdev- > >unregister_netdevice_queue->rollback_registered_many > that calls the below functions which access the registers after > pm_runtime_put_sync() > 1) ravb_get_stats > 2) ravb_close > > Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx> > Link: > Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx> > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c > b/drivers/net/ethernet/renesas/ravb_main.c > index 33f723a9f471..b4e0fc7f65bd 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -2903,12 +2903,12 @@ static int ravb_remove(struct platform_device *pdev) > priv->desc_bat_dma); > /* Set reset mode */ > ravb_write(ndev, CCC_OPC_RESET, CCC); > - pm_runtime_put_sync(&pdev->dev); > unregister_netdev(ndev); > if (info->nc_queues) > netif_napi_del(&priv->napi[RAVB_NC]); > netif_napi_del(&priv->napi[RAVB_BE]); > ravb_mdio_release(priv); > + pm_runtime_put_sync(&pdev->dev); > pm_runtime_disable(&pdev->dev); > reset_control_assert(priv->rstc); > free_netdev(ndev);