[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f962e9bab3dc8bf5cae1c7e187a54fb96a543d51.camel@suse.com>
Date: Tue, 10 Jun 2025 17:03:02 -0300
From: Marcos Paulo de Souza <mpdesouza@...e.com>
To: Doug Anderson <dianders@...omium.org>
Cc: Petr Mladek <pmladek@...e.com>, Steven Rostedt <rostedt@...dmis.org>,
John Ogness <john.ogness@...utronix.de>, Sergey Senozhatsky
<senozhatsky@...omium.org>, Greg Kroah-Hartman
<gregkh@...uxfoundation.org>, Jiri Slaby <jirislaby@...nel.org>, Jason
Wessel <jason.wessel@...driver.com>, Daniel Thompson <danielt@...nel.org>,
Richard Weinberger <richard@....at>, Anton Ivanov
<anton.ivanov@...bridgegreys.com>, Johannes Berg
<johannes@...solutions.net>, linux-kernel@...r.kernel.org,
linux-serial@...r.kernel.org, kgdb-bugreport@...ts.sourceforge.net,
linux-um@...ts.infradead.org
Subject: Re: [PATCH 4/7] drivers: serial: kgdboc: Check CON_SUSPENDED
instead of CON_ENABLED
On Mon, 2025-06-09 at 13:13 -0700, Doug Anderson wrote:
> Hi,
>
> On Fri, Jun 6, 2025 at 7:54 PM Marcos Paulo de Souza
> <mpdesouza@...e.com> wrote:
> >
> > All consoles found on for_each_console are registered, meaning that
> > all of
> > them are CON_ENABLED. The code tries to find an active console, so
> > check if the
> > console is not suspended instead.
> >
> > Signed-off-by: Marcos Paulo de Souza <mpdesouza@...e.com>
> > ---
> > drivers/tty/serial/kgdboc.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/tty/serial/kgdboc.c
> > b/drivers/tty/serial/kgdboc.c
> > index
> > 85f6c5a76e0fff556f86f0d45ebc5aadf5b191e8..af6d2208b8ddb82d62f33292b
> > 006b2923583a0d2 100644
> > --- a/drivers/tty/serial/kgdboc.c
> > +++ b/drivers/tty/serial/kgdboc.c
> > @@ -577,7 +577,8 @@ static int __init kgdboc_earlycon_init(char
> > *opt)
> > console_list_lock();
> > for_each_console(con) {
> > if (con->write && con->read &&
> > - (con->flags & (CON_BOOT | CON_ENABLED)) &&
> > + (con->flags & CON_BOOT) &&
> > + ((con->flags & CON_SUSPENDED) == 0) &&
>
> I haven't tried running the code, so I could easily be mistaken,
> but...
>
> ...the above doesn't seem like the correct conversion. The old
> expression was:
>
> (con->flags & (CON_BOOT | CON_ENABLED))
>
> That would evaluate to non-zero (true) if the console was _either_
> "boot" or "enabled".
>
> The new expression is is:
>
> (con->flags & CON_BOOT) && ((con->flags & CON_SUSPENDED) == 0)
>
> That's only true if the console is _both_ "boot" and "not suspended".
My idea here was that the users of for_each_console would find the
first available console, and by available I would expect them to be
usable. In this case, is there any value for kgdboc to use a console
that is suspended? Would it work in this case?
I never really used kgdboc, but only checking if the console was
enabled (which it's always the case here) was something that needed to
be fixed.
Maybe I'm missing something here as well, so please let me know if I
should remove the new check.
>
> -Doug
Powered by blists - more mailing lists