mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-14 12:37:32 +00:00
watchdog: core: Fix error handling of watchdog_dev_init()
Fix the error handling paths of watchdog_dev_init(). Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
cddd74db8d
commit
138913cb63
1 changed files with 8 additions and 3 deletions
|
@ -972,17 +972,22 @@ int __init watchdog_dev_init(void)
|
||||||
err = class_register(&watchdog_class);
|
err = class_register(&watchdog_class);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
pr_err("couldn't register class\n");
|
pr_err("couldn't register class\n");
|
||||||
return err;
|
goto err_register;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog");
|
err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog");
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
pr_err("watchdog: unable to allocate char dev region\n");
|
pr_err("watchdog: unable to allocate char dev region\n");
|
||||||
class_unregister(&watchdog_class);
|
goto err_alloc;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_alloc:
|
||||||
|
class_unregister(&watchdog_class);
|
||||||
|
err_register:
|
||||||
|
destroy_workqueue(watchdog_wq);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue