From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932951AbbCEQHN (ORCPT ); Thu, 5 Mar 2015 11:07:13 -0500 Received: from mail-qg0-f41.google.com ([209.85.192.41]:36457 "EHLO mail-qg0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757178AbbCEQHL (ORCPT ); Thu, 5 Mar 2015 11:07:11 -0500 Message-ID: <54F87F2C.9070508@hurleysoftware.com> Date: Thu, 05 Mar 2015 11:07:08 -0500 From: Peter Hurley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Rob Herring CC: Greg Kroah-Hartman , Andrew Morton , Jiri Slaby , "linux-kernel@vger.kernel.org" , "linux-serial@vger.kernel.org" Subject: Re: [PATCH v2 -next 10/13] serial: earlycon: Allow earlycon params with name only References: <1425225958-17908-1-git-send-email-peter@hurleysoftware.com> <1425225958-17908-11-git-send-email-peter@hurleysoftware.com> <54F87C15.6020801@hurleysoftware.com> In-Reply-To: <54F87C15.6020801@hurleysoftware.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 wrote: >>> Allow earlycon param strings of the form >>> earlycon= >> >> 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 >>> --- >>> 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 >>> >