From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751336AbeAPPxX (ORCPT + 1 other); Tue, 16 Jan 2018 10:53:23 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:45147 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751066AbeAPPxW (ORCPT ); Tue, 16 Jan 2018 10:53:22 -0500 X-Google-Smtp-Source: ACJfBosEE8Y7Bi1Nkl27/ic4JvNdxd8bG+X+oEMeGcVkTKNxPU1w9uOuAqJNA5fL/5j7blemQBu3rQ== Date: Tue, 16 Jan 2018 16:53:18 +0100 From: Ingo Molnar To: Andy Shevchenko Cc: "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , x86@kernel.org, linux-kernel@vger.kernel.org, Peter Zijlstra , Greg Kroah-Hartman Subject: Re: [PATCH v1 6/6] x86/boot: Support nocfg parameter for earlyprintk Message-ID: <20180116155318.eqjywakyalh5dvrd@gmail.com> References: <20180114143254.15429-1-andriy.shevchenko@linux.intel.com> <20180114143254.15429-6-andriy.shevchenko@linux.intel.com> <20180116031234.5lkmuazcob6mqq6m@gmail.com> <1516100440.7000.1010.camel@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1516100440.7000.1010.camel@linux.intel.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: * Andy Shevchenko wrote: > On Tue, 2018-01-16 at 04:12 +0100, Ingo Molnar wrote: > > * Andy Shevchenko wrote: > > > > > @@ -133,12 +135,16 @@ static void parse_earlyprintk(void) > > > if (arg[pos] == ',') > > > pos++; > > > > > > - baud = simple_strtoull(arg + pos, &e, 0); > > > - if (baud == 0 || arg + pos == e) > > > - baud = DEFAULT_BAUD; > > > + if (strncmp(arg + pos, "nocfg", 5)) { > > > + baud = simple_strtoull(arg + pos, &e, 0); > > > + if (baud == 0 || arg + pos == e) > > > + baud = DEFAULT_BAUD; > > > + } else { > > > + configure = false; > > > + } > > > } > > > > > > - early_serial_init(port, baud); > > > + early_serial_init(port, baud, configure); > > > } > > > > > > #define BASE_BAUD (1843200/16) > > > @@ -162,6 +168,7 @@ static void parse_console_uart8250(void) > > > char optstr[64], *options; > > > int baud = DEFAULT_BAUD; > > > unsigned long port = 0; > > > + bool configure = true; > > > > > > /* > > > * console=uart8250,io,0x3f8,115200n8 > > > @@ -179,12 +186,16 @@ static void parse_console_uart8250(void) > > > else > > > return; > > > > > > - if (options && (options[0] == ',')) > > > - baud = simple_strtoull(options + 1, &options, 0); > > > - else > > > + if (options[0] == ',') { > > > + if (strncmp(options + 1, "nocfg", 5)) > > > + baud = simple_strtoull(options + 1, > > > &options, 0); > > > + else > > > + configure = false; > > > + } else { > > > baud = probe_baud(port); > > > > These code patters seem very similar - could a common function be > > factored out, to > > simplify future changes (such as the one done here)? > > Need to think about. Moreoever, arch/x86/kernel/early_print.c contains > even more duplication, though I understand why it's split to different > folders. > > And on top of that we have earlycon (which indeed would be more > preferable solution). Perhaps, instead of playing with earlyprintk at > boot stage we might parse earlycon option that more flexible? > > P.S. In any choice at least patch 1 (and maybe patch 2) would be needed. I'm fine with your current approach - and earlyprintk is preferred by many kernel developers. Was just wondering how hard it would be to create a common parser - and whether that's desirable at all (it might not be). Thanks, Ingo