]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
watchdog: sprd_wdt: Remove redundant sprd_wdt_disable() on register failure
authorFelix Gu <ustc.gu@gmail.com>
Mon, 23 Feb 2026 11:59:20 +0000 (19:59 +0800)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 3 May 2026 20:49:51 +0000 (13:49 -0700)
The driver uses devm_add_action_or_reset() to register sprd_wdt_disable()
as a managed cleanup action.

When devm_watchdog_register_device() fails, the devm core will invoke
the cleanup action automatically.

The explicit sprd_wdt_disable() call in the error path is therefore
redundant and results in adouble cleanup.

Fixes: 78d9bfad2e89 ("watchdog: sprd_wdt: Convert to use device managed functions and other improvements")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Link: https://lore.kernel.org/r/20260223-sprd_wdt-v1-1-2e71f9a76ecb@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/watchdog/sprd_wdt.c

index 4e689b6ff1418cd1cd3aeec963013530bb3cb6fa..aacf04616fefe23c54132910495c967a25ca9994 100644 (file)
@@ -320,10 +320,9 @@ static int sprd_wdt_probe(struct platform_device *pdev)
        watchdog_init_timeout(&wdt->wdd, 0, dev);
 
        ret = devm_watchdog_register_device(dev, &wdt->wdd);
-       if (ret) {
-               sprd_wdt_disable(wdt);
+       if (ret)
                return ret;
-       }
+
        platform_set_drvdata(pdev, wdt);
 
        return 0;