[PATCH tty v11 0/2] Convert 8250 to NBCON, take 2

John Ogness <[email protected]> Wed, 29 Jul 2026 14:10:32 +0206
Newsgroups org.kernel.vger.linux-serial,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi,

This is v11 of a series to convert the 8250 driver to an NBCON
console, providing both threaded and atomic printing
implementations. v10 of this series is here [0].

Note that v5 was pulled into the 6.14 merge window, but was
then reverted before the 6.14-rc1 release due to kernel test
robot problems. It turned out that the problems were related
to general 8250 driver issues. Those issues have now been
addressed mainline, paving the way for a second take at
converting the 8250 driver to NBCON.

The changes since v10:

- Change the main write functions to be helper functions:

  serial8250_console_fifo_write() -> __serial8250_console_fifo_write()
  serial8250_console_byte_write() -> __serial8250_console_byte_write()

  These functions take additional char array and size arguments for
  text to write. This allows the functions to be used for special
  text. In particular, writing the extra '\n' after a
  handover/takeover.

- Add new serial8250_console_fifo_write() and
  serial8250_console_byte_write() functions that are simple wrappers
  for the respective helpers.

- Add a __serial8250_console_write() function to handle calling the
  appropriate write functions for the various use_fifo/!use_fifo and
  console_line_ended/!console_line_ended scenarios. This not only
  fixes a possible FIFO overrun pointed out by Sashiko for the
  "use_fifo && !console_line_ended" case, but also also consolidates
  all the actual writing code into a single helper.

- Toggle unsafe after 2 potentially large delays in the post-write
  part of serial8250_console_write(). This reduces the likelihood of
  corruption in panic output by providing more points to recognize
  ownership transfer.

John Ogness

[0] https://lore.kernel.org/lkml/[email protected]

John Ogness (2):
  serial: 8250: Switch to nbcon console, take 2
  Revert "serial: 8250: drop lockdep annotation from
    serial8250_clear_IER()"

 drivers/tty/serial/8250/8250.h      |   4 +-
 drivers/tty/serial/8250/8250_core.c |  65 ++++++--
 drivers/tty/serial/8250/8250_dw.c   |   2 +-
 drivers/tty/serial/8250/8250_port.c | 245 +++++++++++++++++++++++-----
 include/linux/serial_8250.h         |  16 +-
 5 files changed, 277 insertions(+), 55 deletions(-)


base-commit: a5339effdd523b4b3502fba5358d44e83c76a565
-- 
2.47.3