2020-06-18 16:50:58

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v1 5/6] console: Propagate error code from console ->setup()

Since console ->setup() hook returns meaningful error codes,
propagate it to the caller of try_enable_new_console().

Signed-off-by: Andy Shevchenko <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
---
kernel/printk/printk.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 8c14835be46c..aaea3ad182e1 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -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) {
--
2.27.0


2020-06-19 03:38:57

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH v1 5/6] console: Propagate error code from console ->setup()

On Thu, 2020-06-18 at 19:47 +0300, Andy Shevchenko wrote:
> Since console ->setup() hook returns meaningful error codes,
> propagate it to the caller of try_enable_new_console().
>
> Signed-off-by: Andy Shevchenko <[email protected]>
>

Acked-by: Benjamin Herrenschmidt <[email protected]>

> ---A
> kernel/printk/printk.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 8c14835be46c..aaea3ad182e1 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -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) {