Skip to content

Commit eb16602

Browse files
bijudasgregkh
authored andcommitted
ravb: Fix "failed to switch device to config mode" message during unbind
[ Upstream commit c72a7e4 ] 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: c156633 ("Renesas Ethernet AVB driver proper") Cc: stable@vger.kernel.org Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Link: https://lore.kernel.org/r/20221214105118.2495313-1-biju.das.jz@bp.renesas.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 4216995 commit eb16602

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/net/ethernet/renesas/ravb_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2378,11 +2378,11 @@ static int ravb_remove(struct platform_device *pdev)
23782378
priv->desc_bat_dma);
23792379
/* Set reset mode */
23802380
ravb_write(ndev, CCC_OPC_RESET, CCC);
2381-
pm_runtime_put_sync(&pdev->dev);
23822381
unregister_netdev(ndev);
23832382
netif_napi_del(&priv->napi[RAVB_NC]);
23842383
netif_napi_del(&priv->napi[RAVB_BE]);
23852384
ravb_mdio_release(priv);
2385+
pm_runtime_put_sync(&pdev->dev);
23862386
pm_runtime_disable(&pdev->dev);
23872387
reset_control_assert(priv->rstc);
23882388
free_netdev(ndev);

0 commit comments

Comments
 (0)