Re: [PATCH v2] x86/early_printk: add MMIO-based UARTs
From: Ingo Molnar
Date: Wed Mar 19 2025 - 18:17:06 EST
* Denis Mukhin <dmkhn@xxxxxxxxx> wrote:
> Hi,
>
> Thanks for taking a look!
>
> On Monday, March 17th, 2025 at 12:58 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> >
> >
> >
> > * Denis Mukhin via B4 Relay devnull+dmukhin.ford.com@xxxxxxxxxx wrote:
> >
> > > + if (!strncmp(s, "nocfg", 5))
> > > + baudrate = 0;
> > > + else {
> > > + baudrate = simple_strtoul(s, &e, 0);
> > > + if (baudrate == 0 || s == e)
> > > + baudrate = DEFAULT_BAUD;
> > > + }
> >
> >
> > In standard kernel coding style we always balance curly braces and
> > don't skip them in the single-statement case. Ie. the above should be:
> >
> > if (!strncmp(s, "nocfg", 5)) {
> > baudrate = 0;
> > } else {
> >
> > > + if (baudrate)
> > > + early_serial_hw_init(115200 / baudrate);
> >
> >
> > Hm, I think that division will go poorly if 'baudrate' ends up being 0
> > in the 'nocfg' case ... ;-)
>
> This patch has a guardrail:
> early_serial_hw_init(115200 / baudrate);
> will not be called in case of baudrate is 0.
Ugh, I must have had very limited reading comprehension that day :-/
> I can re-write code to avoid confusion.
No need to rewrite, the code is clear enough, it's my fault. :-)
But please do send -v3 with the curly braces fix, and merged against
the latest x86 tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git master
because there's a pending commit that creates a conflict:
306859de59e5 ("x86/early_printk: Harden early_serial")
... while the conflict looks simple enough, it would be best to also
test it, etc.
Thanks,
Ingo