mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
watchdog: rtd119x: Avoid division by zero
clk_get_rate() could return 0. Avoid a division by zero panic.
Fixes: 2bdf6acbfe ("watchdog: Add Realtek RTD1295")
Cc: stable@vger.kernel.org
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Link: https://patch.msgid.link/20260913064851.8239-3-tzungbi@kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
400cb663ca
commit
5af7d2cbd2
|
|
@ -98,6 +98,7 @@ static int rtd119x_wdt_probe(struct platform_device *pdev)
|
|||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct rtd119x_watchdog_device *data;
|
||||
unsigned long rate;
|
||||
|
||||
data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
|
||||
if (!data)
|
||||
|
|
@ -111,10 +112,14 @@ static int rtd119x_wdt_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(data->clk))
|
||||
return PTR_ERR(data->clk);
|
||||
|
||||
rate = clk_get_rate(data->clk);
|
||||
if (!rate)
|
||||
return -EINVAL;
|
||||
|
||||
data->wdt_dev.info = &rtd119x_wdt_info;
|
||||
data->wdt_dev.ops = &rtd119x_wdt_ops;
|
||||
data->wdt_dev.timeout = 120;
|
||||
data->wdt_dev.max_timeout = 0xffffffff / clk_get_rate(data->clk);
|
||||
data->wdt_dev.max_timeout = 0xffffffff / rate;
|
||||
data->wdt_dev.min_timeout = 1;
|
||||
data->wdt_dev.parent = dev;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user