summaryrefslogtreecommitdiff
path: root/kernel/printk/internal.h
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.com>2025-12-01 14:16:28 +0100
committerPetr Mladek <pmladek@suse.com>2025-12-01 14:16:28 +0100
commit3a9a3f5fb224155bb719c337527ffdffca0c1d7f (patch)
tree59c1e3dfc5d87e92442891e53d8d1fb566e1eeb3 /kernel/printk/internal.h
parentb1e6c41ef9daf5a975a677c3570c5f805c6c7514 (diff)
parent66e7c1e0ee08cfb6db64f8f3f6e5a3cc930145c8 (diff)
Merge branch 'rework/suspend-fixes' into for-linus
Diffstat (limited to 'kernel/printk/internal.h')
-rw-r--r--kernel/printk/internal.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h
index 7e3128ec9336..5f5f626f4279 100644
--- a/kernel/printk/internal.h
+++ b/kernel/printk/internal.h
@@ -185,6 +185,8 @@ struct console_flush_type {
bool legacy_offload;
};
+extern bool console_irqwork_blocked;
+
/*
* Identify which console flushing methods should be used in the context of
* the caller.
@@ -196,7 +198,7 @@ static inline void printk_get_console_flush_type(struct console_flush_type *ft)
switch (nbcon_get_default_prio()) {
case NBCON_PRIO_NORMAL:
if (have_nbcon_console && !have_boot_console) {
- if (printk_kthreads_running)
+ if (printk_kthreads_running && !console_irqwork_blocked)
ft->nbcon_offload = true;
else
ft->nbcon_atomic = true;
@@ -206,7 +208,7 @@ static inline void printk_get_console_flush_type(struct console_flush_type *ft)
if (have_legacy_console || have_boot_console) {
if (!is_printk_legacy_deferred())
ft->legacy_direct = true;
- else
+ else if (!console_irqwork_blocked)
ft->legacy_offload = true;
}
break;
@@ -219,7 +221,7 @@ static inline void printk_get_console_flush_type(struct console_flush_type *ft)
if (have_legacy_console || have_boot_console) {
if (!is_printk_legacy_deferred())
ft->legacy_direct = true;
- else
+ else if (!console_irqwork_blocked)
ft->legacy_offload = true;
}
break;