diff options
Diffstat (limited to 'target/linux/ipq806x/patches-4.4/009-3-watchdog-Use-static-struct-class-watchdog_class-instead-of-pointer.patch')
-rw-r--r-- | target/linux/ipq806x/patches-4.4/009-3-watchdog-Use-static-struct-class-watchdog_class-instead-of-pointer.patch | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/target/linux/ipq806x/patches-4.4/009-3-watchdog-Use-static-struct-class-watchdog_class-instead-of-pointer.patch b/target/linux/ipq806x/patches-4.4/009-3-watchdog-Use-static-struct-class-watchdog_class-instead-of-pointer.patch deleted file mode 100644 index 1906a1f4e5..0000000000 --- a/target/linux/ipq806x/patches-4.4/009-3-watchdog-Use-static-struct-class-watchdog_class-instead-of-pointer.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 906d7a5cfeda508e7361f021605579a00cd82815 Mon Sep 17 00:00:00 2001 -From: Pratyush Anand <panand@redhat.com> -Date: Thu, 17 Dec 2015 17:53:58 +0530 -Subject: watchdog: Use static struct class watchdog_class in stead of pointer - -We need few sysfs attributes to know different status of a watchdog device. -To do that, we need to associate .dev_groups with watchdog_class. So -convert it from pointer to static. -Putting this static struct in watchdog_dev.c, so that static device -attributes defined in that file can be attached to it. - -Signed-off-by: Pratyush Anand <panand@redhat.com> -Suggested-by: Guenter Roeck <linux@roeck-us.net> -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> ---- - drivers/watchdog/watchdog_core.c | 15 ++------------- - drivers/watchdog/watchdog_core.h | 2 +- - drivers/watchdog/watchdog_dev.c | 26 ++++++++++++++++++++++---- - 3 files changed, 25 insertions(+), 18 deletions(-) - ---- a/drivers/watchdog/watchdog_core.c -+++ b/drivers/watchdog/watchdog_core.c -@@ -370,19 +370,9 @@ static int __init watchdog_deferred_regi - - static int __init watchdog_init(void) - { -- int err; -- -- watchdog_class = class_create(THIS_MODULE, "watchdog"); -- if (IS_ERR(watchdog_class)) { -- pr_err("couldn't create class\n"); -+ watchdog_class = watchdog_dev_init(); -+ if (IS_ERR(watchdog_class)) - return PTR_ERR(watchdog_class); -- } -- -- err = watchdog_dev_init(); -- if (err < 0) { -- class_destroy(watchdog_class); -- return err; -- } - - watchdog_deferred_registration(); - return 0; -@@ -391,7 +381,6 @@ static int __init watchdog_init(void) - static void __exit watchdog_exit(void) - { - watchdog_dev_exit(); -- class_destroy(watchdog_class); - ida_destroy(&watchdog_ida); - } - ---- a/drivers/watchdog/watchdog_core.h -+++ b/drivers/watchdog/watchdog_core.h -@@ -33,5 +33,5 @@ - */ - extern int watchdog_dev_register(struct watchdog_device *); - extern int watchdog_dev_unregister(struct watchdog_device *); --extern int __init watchdog_dev_init(void); -+extern struct class * __init watchdog_dev_init(void); - extern void __exit watchdog_dev_exit(void); ---- a/drivers/watchdog/watchdog_dev.c -+++ b/drivers/watchdog/watchdog_dev.c -@@ -581,18 +581,35 @@ int watchdog_dev_unregister(struct watch - return 0; - } - -+static struct class watchdog_class = { -+ .name = "watchdog", -+ .owner = THIS_MODULE, -+}; -+ - /* - * watchdog_dev_init: init dev part of watchdog core - * - * Allocate a range of chardev nodes to use for watchdog devices - */ - --int __init watchdog_dev_init(void) -+struct class * __init watchdog_dev_init(void) - { -- int err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); -- if (err < 0) -+ int err; -+ -+ err = class_register(&watchdog_class); -+ if (err < 0) { -+ pr_err("couldn't register class\n"); -+ return ERR_PTR(err); -+ } -+ -+ err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); -+ if (err < 0) { - pr_err("watchdog: unable to allocate char dev region\n"); -- return err; -+ class_unregister(&watchdog_class); -+ return ERR_PTR(err); -+ } -+ -+ return &watchdog_class; - } - - /* -@@ -604,4 +621,5 @@ int __init watchdog_dev_init(void) - void __exit watchdog_dev_exit(void) - { - unregister_chrdev_region(watchdog_devt, MAX_DOGS); -+ class_unregister(&watchdog_class); - } |