console: Use for_each_console() helper in unregister_console()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 3 Feb 2020 13:31:26 +0000 (15:31 +0200)
committerPetr Mladek <pmladek@suse.com>
Tue, 11 Feb 2020 09:43:56 +0000 (10:43 +0100)
We have rather open coded single linked list manipulations where we may
simple use for_each_console() helper with properly set exit conditions.

Replace open coded single-linked list handling with for_each_console()
helper in use.

Link: http://lkml.kernel.org/r/20200203133130.11591-3-andriy.shevchenko@linux.intel.com
To: linux-kernel@vger.kernel.org
To: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
kernel/printk/printk.c

index 51337ed..d40a316 100644 (file)
@@ -2809,7 +2809,7 @@ EXPORT_SYMBOL(register_console);
 
 int unregister_console(struct console *console)
 {
-        struct console *a, *b;
+       struct console *con;
        int res;
 
        pr_info("%sconsole [%s%d] disabled\n",
@@ -2825,11 +2825,10 @@ int unregister_console(struct console *console)
        if (console_drivers == console) {
                console_drivers=console->next;
                res = 0;
-       } else if (console_drivers) {
-               for (a=console_drivers->next, b=console_drivers ;
-                    a; b=a, a=b->next) {
-                       if (a == console) {
-                               b->next = a->next;
+       } else {
+               for_each_console(con) {
+                       if (con->next == console) {
+                               con->next = console->next;
                                res = 0;
                                break;
                        }