All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: "Maciej W. Rozycki" <macro@linux-mips.org>,
	kernel@pengutronix.de,
	Robert Schwebel <r.schwebel@pengutronix.de>,
	linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: Re: earlycon: no match?
Date: Fri, 8 May 2015 08:34:33 +0200	[thread overview]
Message-ID: <20150508063433.GA6325@pengutronix.de> (raw)
In-Reply-To: <554B9F43.6000702@hurleysoftware.com>

On Thu, May 07, 2015 at 01:22:11PM -0400, Peter Hurley wrote:
> On 05/07/2015 01:09 PM, Maciej W. Rozycki wrote:
> > On Mon, 4 May 2015, Peter Hurley wrote:
> > 
> >>>> Since 2007, 'console=' is a early param synonym for 'earlycon='; IOW,
> >>>> the message is new but not the behavior.
> >>>
> >>> "console=" had nothing to do with early param before.
> >>
> >> *Yes, it has* since the commit I referenced in the previous email and
> >> the email before that when I noted that 'console=' and 'earlycon=' are
> >> synonyms if CONFIG_SERIAL_EARLYCON=y, and it has been that way since
> >> 2007.
> >>
> >> The only thing that has changed is that I added a diagnostic; _to repeat_,
> >> the earlycon matching code has always run in this case, only the
> >> diagnostic is new.
> > 
> >  What's the point of having two parameters as synonyms whose syntax is not 
> > compatible to each other in the general case?  I'd expect the following 
> > cases to be handled:
> > 
> > 1. Regular console only (no early console requested) => `console=foo...'.
> > 
> > 2. Both early and regular console => `earlycon=blah... console=foo...'.
> > 
> > 3. Early console handing over to regular console => `earlycon=blah...'.
> 
>   4. Early console only => `earlycon=blah...'
> 
> How to distinguish between 3 & 4?

Given that the aliasing only makes sense for console=uart, and
console=uart8250, we can do the following. Not exactly the nicest
code, but only slighty more ugly than what we have now in
do_early_param()

Sascha

--------------------------8<----------------------------

>From e4d5a09877e48308ee0cf4170f2eef8aa2f747f5 Mon Sep 17 00:00:00 2001
From: Sascha Hauer <s.hauer@pengutronix.de>
Date: Fri, 8 May 2015 08:23:47 +0200
Subject: [PATCH] param: console: Do not treat console as synonym for earlycon

Since 2007 console= and earlycon= are treated as synonyms, but the
syntax for both options is different. The only case in which they
are identical is for console=uart or console=uart8250. All other
cases currently lead to the warning:

earlycon: no match for xxx

This patch drops the general aliasing, but keeps the current
behaviour for console=uart and console=uart8250 to keep the kernel
parameters compatible.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 init/main.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/init/main.c b/init/main.c
index 2115055..bfcbbc5 100644
--- a/init/main.c
+++ b/init/main.c
@@ -413,12 +413,15 @@ static noinline void __init_refok rest_init(void)
 static int __init do_early_param(char *param, char *val, const char *unused)
 {
 	const struct obs_kernel_param *p;
+	bool earlyconalias = false;
+
+	if (val && !strcmp(param, "console") &&
+	    (!strncmp(val, "uart,", 5) || !strncmp(val, "uart8250,", 9)))
+		earlyconalias = true;
 
 	for (p = __setup_start; p < __setup_end; p++) {
 		if ((p->early && parameq(param, p->str)) ||
-		    (strcmp(param, "console") == 0 &&
-		     strcmp(p->str, "earlycon") == 0)
-		) {
+		    (earlyconalias && strcmp(p->str, "earlycon") == 0)) {
 			if (p->setup_func(val) != 0)
 				pr_warn("Malformed early option '%s'\n", param);
 		}
-- 
2.1.4

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  parent reply	other threads:[~2015-05-08  6:34 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-03 21:10 earlycon: no match? Robert Schwebel
2015-05-04 14:01 ` Peter Hurley
2015-05-04 16:52   ` Peter Hurley
2015-05-04 19:42   ` Robert Schwebel
2015-05-04 20:21     ` Peter Hurley
2015-05-04 20:52       ` Robert Schwebel
2015-05-04 21:27         ` Peter Hurley
2015-05-04 21:58           ` Robert Schwebel
2015-05-04 22:31             ` Peter Hurley
2015-05-05  4:51               ` Robert Schwebel
2015-05-05 10:39                 ` Peter Hurley
2015-05-05 16:32                   ` Robert Schwebel
2015-05-05 18:15                     ` Peter Hurley
2015-05-05 17:06                 ` Fabio Estevam
2015-05-07 17:09           ` Maciej W. Rozycki
2015-05-07 17:22             ` Peter Hurley
2015-05-07 20:14               ` Maciej W. Rozycki
2015-05-07 21:13                 ` Peter Hurley
2015-05-07 22:25                   ` Maciej W. Rozycki
2015-05-07 22:37                     ` Peter Hurley
2015-05-08 16:11                       ` Maciej W. Rozycki
2015-05-08  6:34               ` Sascha Hauer [this message]
2015-05-08 10:12                 ` Peter Hurley
2015-05-04 20:22   ` Sascha Hauer
2015-05-04 20:34     ` Peter Hurley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150508063433.GA6325@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=kernel@pengutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=macro@linux-mips.org \
    --cc=peter@hurleysoftware.com \
    --cc=r.schwebel@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.