diff mbox series

[5/5] printk: Check CON_SUSPEND when unblanking a console

Message ID 20250226-printk-renaming-v1-5-0b878577f2e6@suse.com
State New
Headers show
Series [1/5] printk: Rename suspend_console to console_suspend_all | expand

Commit Message

Marcos Paulo de Souza Feb. 26, 2025, 7:59 p.m. UTC
The commit 9e70a5e109a4 ("printk: Add per-console suspended state")
introduced the CON_SUSPENDED flag for consoles. The suspended consoles
will stop receiving messages, so don't unblank suspended consoles
because it won't be showing anything either way.

Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
---
 kernel/printk/printk.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index fbbaec06c9f3..4b7ed40bf808 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3342,7 +3342,12 @@  void console_unblank(void)
 	 */
 	cookie = console_srcu_read_lock();
 	for_each_console_srcu(c) {
-		if ((console_srcu_read_flags(c) & CON_ENABLED) && c->unblank) {
+		short flags = console_srcu_read_flags(c);
+
+		if (flags & CON_SUSPENDED)
+			continue;
+
+		if ((flags & CON_ENABLED) && c->unblank) {
 			found_unblank = true;
 			break;
 		}
@@ -3379,7 +3384,12 @@  void console_unblank(void)
 
 	cookie = console_srcu_read_lock();
 	for_each_console_srcu(c) {
-		if ((console_srcu_read_flags(c) & CON_ENABLED) && c->unblank)
+		short flags = console_srcu_read_flags(c);
+
+		if (flags & CON_SUSPENDED)
+			continue;
+
+		if ((flags & CON_ENABLED) && c->unblank)
 			c->unblank();
 	}
 	console_srcu_read_unlock(cookie);