Message ID | 20240119082722.1133024-1-jisheng.teoh@starfivetech.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Guenter Roeck |
Headers | show |
Series | watchdog: starfive: Check pm_runtime_enabled() before decrementing usage counter | expand |
On 1/19/24 00:27, Ji Sheng Teoh wrote: > In the probe function, pm_runtime_put_sync() will fail on platform with > runtime PM disabled. > Check if runtime PM is enabled before calling pm_runtime_put_sync() to > fix it. > > Fixes: db728ea9c7be ("drivers: watchdog: Add StarFive Watchdog driver") > Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com> > Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com> > Signed-off-by: Ji Sheng Teoh <jisheng.teoh@starfivetech.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Guenter > --- > drivers/watchdog/starfive-wdt.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/starfive-wdt.c b/drivers/watchdog/starfive-wdt.c > index e28ead24c520..df68ae4acbd7 100644 > --- a/drivers/watchdog/starfive-wdt.c > +++ b/drivers/watchdog/starfive-wdt.c > @@ -494,8 +494,13 @@ static int starfive_wdt_probe(struct platform_device *pdev) > if (ret) > goto err_exit; > > - if (!early_enable) > - pm_runtime_put_sync(&pdev->dev); > + if (!early_enable) { > + if (pm_runtime_enabled(&pdev->dev)) { > + ret = pm_runtime_put_sync(&pdev->dev); > + if (ret) > + goto err_exit; > + } > + } > > return 0; >
diff --git a/drivers/watchdog/starfive-wdt.c b/drivers/watchdog/starfive-wdt.c index e28ead24c520..df68ae4acbd7 100644 --- a/drivers/watchdog/starfive-wdt.c +++ b/drivers/watchdog/starfive-wdt.c @@ -494,8 +494,13 @@ static int starfive_wdt_probe(struct platform_device *pdev) if (ret) goto err_exit; - if (!early_enable) - pm_runtime_put_sync(&pdev->dev); + if (!early_enable) { + if (pm_runtime_enabled(&pdev->dev)) { + ret = pm_runtime_put_sync(&pdev->dev); + if (ret) + goto err_exit; + } + } return 0;