Re: [PATCH] net: ethernet: ravb: Fix release of refclk
On Mon, Apr 19, 2021 at 5:45 PM David Miller wrote: > > From: Adam Ford > Date: Sat, 17 Apr 2021 08:23:29 -0500 > > > The call to clk_disable_unprepare() can happen before priv is > > initialized. This means moving clk_disable_unprepare out of > > out_release into a new label. > > > > Fixes: 8ef7adc6beb2("net: ethernet: ravb: Enable optional refclk") > > Signed-off-by: Adam Ford > Thjis does not apply cleanly, please rebbase and resubmit. Which branch should I use as the rebase? I used net-next because that's where the bug is, but I know it changes frequently. > > Please fix the formatting of your Fixes tag while you are at it, thank you. no problem. Sorry about that adam
Re: [PATCH] net: ethernet: ravb: Fix release of refclk
From: Adam Ford Date: Sat, 17 Apr 2021 08:23:29 -0500 > The call to clk_disable_unprepare() can happen before priv is > initialized. This means moving clk_disable_unprepare out of > out_release into a new label. > > Fixes: 8ef7adc6beb2("net: ethernet: ravb: Enable optional refclk") > Signed-off-by: Adam Ford Thjis does not apply cleanly, please rebbase and resubmit. Please fix the formatting of your Fixes tag while you are at it, thank you.
Re: [PATCH] net: ethernet: ravb: Fix release of refclk
Hello! On 17.04.2021 16:23, Adam Ford wrote: The call to clk_disable_unprepare() can happen before priv is initialized. Mhm, how's that? :-/ This means moving clk_disable_unprepare out of out_release into a new label. Fixes: 8ef7adc6beb2("net: ethernet: ravb: Enable optional refclk") Signed-off-by: Adam Ford diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 8c84c40ab9a0..64a545c98ff2 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c [...] @@ -2252,8 +2252,9 @@ static int ravb_probe(struct platform_device *pdev) /* Stop PTP Clock driver */ if (chip_id != RCAR_GEN2) ravb_ptp_stop(ndev); -out_release: +out_unprepare_refclk: I'd really prefer out_disable_refclk. clk_disable_unprepare(priv->refclk); +out_release: free_netdev(ndev); pm_runtime_put(>dev); MBR, Sergei
Re: [PATCH] net: ethernet: ravb: Fix release of refclk
On Sat, Apr 17, 2021 at 3:23 PM Adam Ford wrote: > The call to clk_disable_unprepare() can happen before priv is > initialized. This means moving clk_disable_unprepare out of > out_release into a new label. > > Fixes: 8ef7adc6beb2("net: ethernet: ravb: Enable optional refclk") > Signed-off-by: Adam Ford Reviewed-by: Geert Uytterhoeven Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
[PATCH] net: ethernet: ravb: Fix release of refclk
The call to clk_disable_unprepare() can happen before priv is initialized. This means moving clk_disable_unprepare out of out_release into a new label. Fixes: 8ef7adc6beb2("net: ethernet: ravb: Enable optional refclk") Signed-off-by: Adam Ford diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 8c84c40ab9a0..64a545c98ff2 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2173,7 +2173,7 @@ static int ravb_probe(struct platform_device *pdev) /* Set GTI value */ error = ravb_set_gti(ndev); if (error) - goto out_release; + goto out_unprepare_refclk; /* Request GTI loading */ ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); @@ -2192,7 +2192,7 @@ static int ravb_probe(struct platform_device *pdev) "Cannot allocate desc base address table (size %d bytes)\n", priv->desc_bat_size); error = -ENOMEM; - goto out_release; + goto out_unprepare_refclk; } for (q = RAVB_BE; q < DBAT_ENTRY_NUM; q++) priv->desc_bat[q].die_dt = DT_EOS; @@ -2252,8 +2252,9 @@ static int ravb_probe(struct platform_device *pdev) /* Stop PTP Clock driver */ if (chip_id != RCAR_GEN2) ravb_ptp_stop(ndev); -out_release: +out_unprepare_refclk: clk_disable_unprepare(priv->refclk); +out_release: free_netdev(ndev); pm_runtime_put(>dev); -- 2.25.1