]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
watchdog: rzg2l_wdt: Check return status of pm_runtime_put()
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Fri, 31 May 2024 06:57:18 +0000 (09:57 +0300)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Wed, 10 Jul 2024 18:01:32 +0000 (20:01 +0200)
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>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-5-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/rzg2l_wdt.c

index d87d4f50180c5c59ccdd56021fd0da548fc31965..7bce093316c4d78b9e43eccac1c1553432d0f223 100644 (file)
@@ -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;
 
        return 0;
 }
@@ -163,7 +167,10 @@ static int rzg2l_wdt_set_timeout(struct watchdog_device *wdev, unsigned int time
         * to reset the module) so that it is updated with new timeout values.
         */
        if (watchdog_active(wdev)) {
-               rzg2l_wdt_stop(wdev);
+               ret = rzg2l_wdt_stop(wdev);
+               if (ret)
+                       return ret;
+
                ret = rzg2l_wdt_start(wdev);
        }