Messages in this thread | | | Date | Wed, 31 Jan 2024 05:16:50 -0800 | Subject | Re: [PATCH v2 04/11] watchdog: rzg2l_wdt: Check return status of pm_runtime_put() | From | Guenter Roeck <> |
| |
On 1/31/24 03:00, claudiu beznea wrote: > > > On 31.01.2024 12:41, Biju Das wrote: >> Hi Claudiu, >> >>> -----Original Message----- >>> From: claudiu beznea <claudiu.beznea@tuxon.dev> >>> Sent: Wednesday, January 31, 2024 10:36 AM >>> Subject: Re: [PATCH v2 04/11] watchdog: rzg2l_wdt: Check return status of >>> pm_runtime_put() >>> >>> Hi, Biju, >>> >>> On 31.01.2024 12:32, Biju Das wrote: >>>> Hi Claudiu, >>>> >>>> Thanks for the feedback. >>>> >>>>> -----Original Message----- >>>>> From: Claudiu <claudiu.beznea@tuxon.dev> >>>>> Sent: Wednesday, January 31, 2024 10:20 AM >>>>> Subject: [PATCH v2 04/11] watchdog: rzg2l_wdt: Check return status of >>>>> pm_runtime_put() >>>>> >>>>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >>>>> >>>>> pm_runtime_put() may return an error code. Check its return status. >>>>> >>>>> Along with it the rzg2l_wdt_set_timeout() function was updated to >>>>> propagate the result of rzg2l_wdt_stop() to its caller. >>>>> >>>>> Fixes: 2cbc5cd0b55f ("watchdog: Add Watchdog Timer driver for >>>>> RZ/G2L") >>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >>>>> --- >>>>> >>>>> Changes in v2: >>>>> - propagate the return code of rzg2l_wdt_stop() to it's callers >>>>> >>>>> drivers/watchdog/rzg2l_wdt.c | 11 +++++++++-- >>>>> 1 file changed, 9 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/drivers/watchdog/rzg2l_wdt.c >>>>> b/drivers/watchdog/rzg2l_wdt.c index d87d4f50180c..7bce093316c4 >>>>> 100644 >>>>> --- a/drivers/watchdog/rzg2l_wdt.c >>>>> +++ b/drivers/watchdog/rzg2l_wdt.c >>>>> @@ -144,9 +144,13 @@ static int rzg2l_wdt_start(struct >>>>> watchdog_device >>>>> *wdev) static int rzg2l_wdt_stop(struct watchdog_device *wdev) { >>>>> struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev); >>>>> + int ret; >>>>> >>>>> rzg2l_wdt_reset(priv); >>>>> - pm_runtime_put(wdev->parent); >>>>> + >>>>> + ret = pm_runtime_put(wdev->parent); >>>>> + if (ret < 0) >>>>> + return ret; >>>> >>>> Do we need to check the return code? So far we didn't hit this >>> condition. >>>> If you are planning to do it, then just >>>> >>>> return pm_runtime_put(wdev->parent); >>> >>> pm_runtime_put() may return 1 if the device is suspended (which is not >>> considered error) as explained here: >> >> Oops, I missed that discussion. Out of curiosity, >> What watchdog framework/consumer is going to do with a >> Non-error return value of 1? > > Looking at this: > https://elixir.bootlin.com/linux/latest/source/drivers/watchdog/watchdog_dev.c#L809 > > it seems that the positive values are not considered errors thus, indeed, > we may return directly: > > return pm_runtime_put(); > > Guenter, > > With this (and previous discussion from [1]), are you OK to change it like: > > return pm_runtime_put(); >
Instead of looking at the source, I would kindly ask you to look at the API.
Guenter
| |