Hi, This series is essentially the first 18 patches of tglx's RFC series [0] with only minor changes in comments and commit messages. It's purpose is to lay the groundwork for the upcoming threaded/atomic console printing posted as the RFC series and demonstrated at LPC2022 [1]. This series is interesting for mainline because it cleans up various code and documentation quirks discovered while working on the new console printing implementation. Aside from cleanups, the main features introduced here are: - Converts the console's DIY linked list implementation to hlist. - Introduces a console list lock (mutex) so that readers (such as /proc/consoles) can safely iterate the consoles without blocking console printing. - Adds SRCU support to the console list to prepare for safe console list iterating from any context. - Refactors buffer handling to prepare for per-console, per-cpu, per-context atomic printing. The series has the following parts: Patches 1 - 5: Cleanups Patches 6 - 12: Locking and list conversion Patches 13 - 18: Improved output buffer handling to prepare for code sharing John Ogness [0] https://lore.kernel.org/lkml/20220910221947.171557773@xxxxxxxxxxxxx [1] https://lore.kernel.org/lkml/875yheqh6v.fsf@xxxxxxxxxxxxxxxxxxxxx Thomas Gleixner (18): printk: Make pr_flush() static printk: Declare log_wait properly printk: Remove write only variable nr_ext_console_drivers printk: Remove bogus comment vs. boot consoles printk: Mark __printk percpu data ready __ro_after_init printk: Protect [un]register_console() with a mutex printk: Convert console list walks for readers to list lock parisc: Put console abuse into one place serial: kgdboc: Lock console list in probe function kgbd: Pretend that console list walk is safe printk: Convert console_drivers list to hlist printk: Prepare for SCRU console list protection printk: Move buffer size defines printk: Document struct console printk: Add struct cons_text_buf printk: Use struct cons_text_buf printk: Use an output descriptor struct for emit printk: Handle dropped message smarter arch/parisc/include/asm/pdc.h | 2 +- arch/parisc/kernel/pdc_cons.c | 55 +++-- arch/parisc/kernel/traps.c | 17 +- drivers/tty/serial/kgdboc.c | 9 +- drivers/tty/tty_io.c | 6 +- fs/proc/consoles.c | 11 +- fs/proc/kmsg.c | 2 - include/linux/console.h | 197 +++++++++++++--- include/linux/printk.h | 9 - include/linux/syslog.h | 3 + kernel/debug/kdb/kdb_io.c | 7 +- kernel/printk/printk.c | 414 ++++++++++++++++++++++------------ 12 files changed, 499 insertions(+), 233 deletions(-) base-commit: dc453dd89daacdc0da6d66234aa27e417df7edcd -- 2.30.2