From: John Ogness Date: Wed, 16 Nov 2022 16:21:21 +0000 (+0106) Subject: tty: tty_io: document console_lock usage X-Git-Tag: v6.2-rc1~213^2^2~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d25a2e748ae159e43d40f4bc0a9e89cc443e325f;p=thirdparty%2Fkernel%2Flinux.git tty: tty_io: document console_lock usage show_cons_active() uses the console_lock to gather information on registered consoles. Since the console_lock is being used for multiple reasons, explicitly document these reasons. This will be useful when the console_lock is split into fine-grained locking. Signed-off-by: John Ogness Reviewed-by: Petr Mladek Signed-off-by: Petr Mladek Link: https://lore.kernel.org/r/20221116162152.193147-10-john.ogness@linutronix.de --- diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index de06c3c2ff70a..ee4da2fec3285 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -3526,6 +3526,16 @@ static ssize_t show_cons_active(struct device *dev, struct console *c; ssize_t count = 0; + /* + * Hold the console_lock to guarantee that no consoles are + * unregistered until all console processing is complete. + * This also allows safe traversal of the console list and + * race-free reading of @flags. + * + * Take console_lock to serialize device() callback with + * other console operations. For example, fg_console is + * modified under console_lock when switching vt. + */ console_lock(); for_each_console(c) { if (!c->device)