Message ID | 20210417132329.6886-1-aford173@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: ethernet: ravb: Fix release of refclk | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | warning | Target tree name not specified in the subject |
netdev/cc_maintainers | warning | 6 maintainers not CCed: s.shtylyov@omprussia.ru geert+renesas@glider.be ashiduka@fujitsu.com yoshihiro.shimoda.uh@renesas.com f.fainelli@gmail.com rikard.falkeborn@gmail.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | fail | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 26 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On Sat, Apr 17, 2021 at 3:23 PM Adam Ford <aford173@gmail.com> 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 <aford173@gmail.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert
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 <aford173@gmail.com> > > 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(&pdev->dev); MBR, Sergei
From: Adam Ford <aford173@gmail.com> 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 <aford173@gmail.com> Thjis does not apply cleanly, please rebbase and resubmit. Please fix the formatting of your Fixes tag while you are at it, thank you.
On Mon, Apr 19, 2021 at 5:45 PM David Miller <davem@davemloft.net> wrote: > > From: Adam Ford <aford173@gmail.com> > 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 <aford173@gmail.com> > 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
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(&pdev->dev);
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 <aford173@gmail.com>