The macro for_each_console_srcu iterates over all registered consoles. It's
implied that all registered consoles have CON_ENABLED flag set, making
the check for the flag unnecessary. Call console_is_usable function to
fully verify if the given console is usable before calling the ->unblank
callback.

Signed-off-by: Marcos Paulo de Souza <[email protected]>
---
 kernel/printk/printk.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index cb79d1d2e6e5..fed98a18e830 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3374,12 +3374,10 @@ void console_unblank(void)
         */
        cookie = console_srcu_read_lock();
        for_each_console_srcu(c) {
-               short flags = console_srcu_read_flags(c);
-
-               if (flags & CON_SUSPENDED)
+               if (!console_is_usable(c, console_srcu_read_flags(c), true))
                        continue;
 
-               if ((flags & CON_ENABLED) && c->unblank) {
+               if (c->unblank) {
                        found_unblank = true;
                        break;
                }
@@ -3416,12 +3414,10 @@ void console_unblank(void)
 
        cookie = console_srcu_read_lock();
        for_each_console_srcu(c) {
-               short flags = console_srcu_read_flags(c);
-
-               if (flags & CON_SUSPENDED)
+               if (!console_is_usable(c, console_srcu_read_flags(c), true))
                        continue;
 
-               if ((flags & CON_ENABLED) && c->unblank)
+               if (c->unblank)
                        c->unblank();
        }
        console_srcu_read_unlock(cookie);

-- 
2.51.1


Reply via email to