Messages in this thread | | | Date | Thu, 05 Mar 2015 11:07:08 -0500 | From | Peter Hurley <> | Subject | Re: [PATCH v2 -next 10/13] serial: earlycon: Allow earlycon params with name only |
| |
On 03/05/2015 10:53 AM, Peter Hurley wrote: > On 03/05/2015 10:46 AM, Rob Herring wrote: >> On Sun, Mar 1, 2015 at 10:05 AM, Peter Hurley <peter@hurleysoftware.com> wrote: >>> Allow earlycon param strings of the form >>> earlycon=<name> >> >> Humm, that should already be the case with ARM semihosting (smh). >> >> Rob > > Then it's passing a bogus options string to parse_options()
No, that's not right.
It's passing an empty string (the '\0' at the end) to parse_options() which is failing with -EINVAL, which upon returning sets buf to NULL.
My way has less obfuscation but the commit log needs to change.
Regards, Peter Hurley
>>> >>> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> >>> --- >>> drivers/tty/serial/earlycon.c | 11 +++++++---- >>> 1 file changed, 7 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c >>> index da5e8c8..025ea01 100644 >>> --- a/drivers/tty/serial/earlycon.c >>> +++ b/drivers/tty/serial/earlycon.c >>> @@ -109,13 +109,16 @@ int __init setup_earlycon(char *buf, const char *match, >>> len = strlen(match); >>> if (strncmp(buf, match, len)) >>> return 0; >>> - if (buf[len] && (buf[len] != ',')) >>> - return 0; >>> >>> - buf += len + 1; >>> + if (buf[len]) { >>> + if (buf[len] != ',') >>> + return 0; >>> + buf += len + 1; >>> + } else >>> + buf = NULL; >>> >>> /* On parsing error, pass the options buf to the setup function */ >>> - if (!parse_options(&early_console_dev, buf)) >>> + if (buf && !parse_options(&early_console_dev, buf)) >>> buf = NULL; >>> >>> port->uartclk = BASE_BAUD * 16; >>> -- >>> 2.3.0 >>> >
| |