watchdog: atlas7_wdt: test clock rate to avoid division by 0
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 2 Mar 2016 22:33:36 +0000 (23:33 +0100)
committerWim Van Sebroeck <wim@iguana.be>
Wed, 16 Mar 2016 20:09:08 +0000 (21:09 +0100)
The clk API may return 0 on clk_get_rate, so we should check the result before
using it as a divisor.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/atlas7_wdt.c

index df6d9242a319587b3820b3fa621c7aa0d65ef42c..ed80734befae16ea294b97fa6f1bfc5249a5d6bc 100644 (file)
@@ -154,6 +154,11 @@ static int atlas7_wdt_probe(struct platform_device *pdev)
        writel(0, wdt->base + ATLAS7_WDT_CNT_CTRL);
 
        wdt->tick_rate = clk_get_rate(clk);
+       if (!wdt->tick_rate) {
+               ret = -EINVAL;
+               goto err1;
+       }
+
        wdt->clk = clk;
        atlas7_wdd.min_timeout = 1;
        atlas7_wdd.max_timeout = UINT_MAX / wdt->tick_rate;