mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:44:45 +01:00
With commit ("printk: Avoid scheduling irq_work on suspend") the
implementation of printk_get_console_flush_type() was modified to
avoid offloading when irq_work should be blocked during suspend.
Since printk uses the returned flush type to determine what
flushing methods are used, this was thought to be sufficient for
avoiding irq_work usage during the suspend phase.
However, vprintk_emit() implements a hack to support
printk_deferred(). In this hack, the returned flush type is
adjusted to make sure no legacy direct printing occurs when
printk_deferred() was used.
Because of this hack, the legacy offloading flushing method can
still be used, causing irq_work to be queued when it should not
be.
Adjust the vprintk_emit() hack to also consider
@console_irqwork_blocked so that legacy offloading will not be
chosen when irq_work should be blocked.
Link: https://lore.kernel.org/lkml/87fra90xv4.fsf@jogness.linutronix.de
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Fixes:
|
||
|---|---|---|
| .. | ||
| .kunitconfig | ||
| braille.c | ||
| braille.h | ||
| console_cmdline.h | ||
| index.c | ||
| internal.h | ||
| Makefile | ||
| nbcon.c | ||
| printk.c | ||
| printk_ringbuffer.c | ||
| printk_ringbuffer.h | ||
| printk_ringbuffer_kunit_test.c | ||
| printk_safe.c | ||
| sysctl.c | ||