* [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind
@ 2022-12-13 9:59 Biju Das
2022-12-14 7:07 ` Leon Romanovsky
0 siblings, 1 reply; 5+ messages in thread
From: Biju Das @ 2022-12-13 9:59 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Philipp Zabel
Cc: Biju Das, Sergey Shtylyov, Phil Edworthy, Geert Uytterhoeven,
Hangbin Liu, Sergei Shtylyov, Masaru Nagai, netdev,
linux-renesas-soc, Fabrizio Castro, stable
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: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver")
Cc: stable@vger.kernel.org
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/net/ethernet/renesas/ravb_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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);
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind
2022-12-13 9:59 [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind Biju Das
@ 2022-12-14 7:07 ` Leon Romanovsky
2022-12-14 8:07 ` Biju Das
0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2022-12-14 7:07 UTC (permalink / raw)
To: Biju Das
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Philipp Zabel, Sergey Shtylyov, Phil Edworthy, Geert Uytterhoeven,
Hangbin Liu, Sergei Shtylyov, Masaru Nagai, netdev,
linux-renesas-soc, Fabrizio Castro, stable
On Tue, Dec 13, 2022 at 09:59:38AM +0000, Biju Das wrote:
> 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: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver")
I don't know how you came to this fixes line, but the more correct one
is c156633f1353 ("Renesas Ethernet AVB driver proper")
Ant the title should need to be "PATCH net".
When you resend the patch, feel free to add my tag.
Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
^ permalink raw reply [flat|nested] 5+ messages in thread* RE: [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind
2022-12-14 7:07 ` Leon Romanovsky
@ 2022-12-14 8:07 ` Biju Das
2022-12-14 8:12 ` Leon Romanovsky
0 siblings, 1 reply; 5+ messages in thread
From: Biju Das @ 2022-12-14 8:07 UTC (permalink / raw)
To: Leon Romanovsky
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Philipp Zabel, Sergey Shtylyov, Phil Edworthy, Geert Uytterhoeven,
Hangbin Liu, Sergei Shtylyov, Masaru Nagai,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
Fabrizio Castro, stable@vger.kernel.org
Hi Leon Romanovsky,
Thanks for the feedback.
> Subject: Re: [PATCH net-next] ravb: Fix "failed to switch device to config
> mode" message during unbind
>
> On Tue, Dec 13, 2022 at 09:59:38AM +0000, Biju Das wrote:
> > 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_man
> > y that calls the below functions which access the registers after
> > pm_runtime_put_sync()
> > 1) ravb_get_stats
> > 2) ravb_close
> >
> > Fixes: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver")
>
> I don't know how you came to this fixes line, but the more correct one is
> c156633f1353 ("Renesas Ethernet AVB driver proper")
I got the details from [1]. The file name is renamed immediately after c156633f1353.
So from Stable backporting point I feel [1] is better.
What do you think?
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/net/ethernet/renesas/ravb_main.c?h=next-20221214&id=a0d2f20650e81407d8e51ad2cbdc492861c74e9c
>
> Ant the title should need to be "PATCH net".
>
> When you resend the patch, feel free to add my tag.
>
> Thanks,
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind
2022-12-14 8:07 ` Biju Das
@ 2022-12-14 8:12 ` Leon Romanovsky
2022-12-14 8:15 ` Biju Das
0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2022-12-14 8:12 UTC (permalink / raw)
To: Biju Das
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Philipp Zabel, Sergey Shtylyov, Phil Edworthy, Geert Uytterhoeven,
Hangbin Liu, Sergei Shtylyov, Masaru Nagai,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
Fabrizio Castro, stable@vger.kernel.org
On Wed, Dec 14, 2022 at 08:07:55AM +0000, Biju Das wrote:
> Hi Leon Romanovsky,
>
> Thanks for the feedback.
>
> > Subject: Re: [PATCH net-next] ravb: Fix "failed to switch device to config
> > mode" message during unbind
> >
> > On Tue, Dec 13, 2022 at 09:59:38AM +0000, Biju Das wrote:
> > > 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_man
> > > y that calls the below functions which access the registers after
> > > pm_runtime_put_sync()
> > > 1) ravb_get_stats
> > > 2) ravb_close
> > >
> > > Fixes: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver")
> >
> > I don't know how you came to this fixes line, but the more correct one is
> > c156633f1353 ("Renesas Ethernet AVB driver proper")
>
> I got the details from [1]. The file name is renamed immediately after c156633f1353.
>
> So from Stable backporting point I feel [1] is better.
No, you should use correct tag from the beginning, @stable will figure it.
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread* RE: [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind
2022-12-14 8:12 ` Leon Romanovsky
@ 2022-12-14 8:15 ` Biju Das
0 siblings, 0 replies; 5+ messages in thread
From: Biju Das @ 2022-12-14 8:15 UTC (permalink / raw)
To: Leon Romanovsky
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Philipp Zabel, Sergey Shtylyov, Phil Edworthy, Geert Uytterhoeven,
Hangbin Liu, Sergei Shtylyov, Masaru Nagai,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
Fabrizio Castro, stable@vger.kernel.org
> Subject: Re: [PATCH net-next] ravb: Fix "failed to switch device to config
> mode" message during unbind
>
> On Wed, Dec 14, 2022 at 08:07:55AM +0000, Biju Das wrote:
> > Hi Leon Romanovsky,
> >
> > Thanks for the feedback.
> >
> > > Subject: Re: [PATCH net-next] ravb: Fix "failed to switch device to
> > > config mode" message during unbind
> > >
> > > On Tue, Dec 13, 2022 at 09:59:38AM +0000, Biju Das wrote:
> > > > 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
> > > > _man y that calls the below functions which access the registers
> > > > after
> > > > pm_runtime_put_sync()
> > > > 1) ravb_get_stats
> > > > 2) ravb_close
> > > >
> > > > Fixes: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver")
> > >
> > > I don't know how you came to this fixes line, but the more correct
> > > one is
> > > c156633f1353 ("Renesas Ethernet AVB driver proper")
> >
> > I got the details from [1]. The file name is renamed immediately after
> c156633f1353.
> >
> > So from Stable backporting point I feel [1] is better.
>
> No, you should use correct tag from the beginning, @stable will figure it.
OK will send v2 with PATCH net and correct fixes tag.
Cheers,
Biju
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-12-14 8:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-13 9:59 [PATCH net-next] ravb: Fix "failed to switch device to config mode" message during unbind Biju Das
2022-12-14 7:07 ` Leon Romanovsky
2022-12-14 8:07 ` Biju Das
2022-12-14 8:12 ` Leon Romanovsky
2022-12-14 8:15 ` Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).