Message ID | 20221019145600.1282823-13-john.ogness@linutronix.de |
---|---|
State | New |
Headers | show |
Series | [printk,v2,01/38] serial: kgdboc: Lock console list in probe function | expand |
On Wed 2022-10-19 17:01:34, John Ogness wrote: > Replace (console->flags & CON_ENABLED) usage with console_is_enabled(). > > Signed-off-by: John Ogness <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Best Regards, Petr
On 2022-10-24, Doug Anderson <dianders@chromium.org> wrote: > It actually only holds console_list_lock() even at the end of the > series. Still, it seems weird that we're declaring the `data_race` on > CON_ENABLED but not CON_BOOT ? For my upcoming v3 I decided to drop this patch and will keep the existing direct reading of @flags. Instead of this patch, for v3 the comment will additionally mention why @flags is allowed to be directly read: /* * Hold the console_lock to guarantee that no consoles are * unregistered until the kgdboc_earlycon setup is complete. * Trapping the exit() callback relies on exit() not being * called until the trap is setup. This also allows safe * traversal of the console list and race-free reading of @flags. */ John Ogness
diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c index e76f0186c335..b17aa7e49894 100644 --- a/drivers/tty/serial/kgdboc.c +++ b/drivers/tty/serial/kgdboc.c @@ -533,7 +533,7 @@ static int __init kgdboc_earlycon_init(char *opt) console_lock(); for_each_console(con) { if (con->write && con->read && - (con->flags & (CON_BOOT | CON_ENABLED)) && + (console_is_enabled(con) || (con->flags & CON_BOOT)) && (!opt || !opt[0] || strcmp(con->name, opt) == 0)) break; }
Replace (console->flags & CON_ENABLED) usage with console_is_enabled(). Signed-off-by: John Ogness <john.ogness@linutronix.de> --- drivers/tty/serial/kgdboc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)