console: Propagate error code from console ->setup()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 18 Jun 2020 16:47:50 +0000 (19:47 +0300)
committerPetr Mladek <pmladek@suse.com>
Thu, 25 Jun 2020 12:24:07 +0000 (14:24 +0200)
Since console ->setup() hook returns meaningful error codes,
propagate it to the caller of try_enable_new_console().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20200618164751.56828-6-andriy.shevchenko@linux.intel.com
kernel/printk/printk.c

index 8c14835..aaea3ad 100644 (file)
@@ -2668,7 +2668,7 @@ early_param("keep_bootcon", keep_bootcon_setup);
 static int try_enable_new_console(struct console *newcon, bool user_specified)
 {
        struct console_cmdline *c;
-       int i;
+       int i, err;
 
        for (i = 0, c = console_cmdline;
             i < MAX_CMDLINECONSOLES && c->name[0];
@@ -2691,8 +2691,8 @@ static int try_enable_new_console(struct console *newcon, bool user_specified)
                                return 0;
 
                        if (newcon->setup &&
-                           newcon->setup(newcon, c->options) != 0)
-                               return -EIO;
+                           (err = newcon->setup(newcon, c->options)) != 0)
+                               return err;
                }
                newcon->flags |= CON_ENABLED;
                if (i == preferred_console) {