[GIT PULL] kgdb changes for v5.8-rc3
From: Daniel Thompson
Date: Fri Jun 26 2020 - 10:55:03 EST
Hi Linus
The following changes since commit 48778464bb7d346b47157d21ffde2af6b2d39110:
Linux 5.8-rc2 (2020-06-21 15:45:29 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux.git/ tags/kgdb-5.8-rc3
for you to fetch changes up to 440ab9e10e2e6e5fd677473ee6f9e3af0f6904d6:
kgdb: Avoid suspicious RCU usage warning (2020-06-26 15:41:40 +0100)
----------------------------------------------------------------
kgdb patches for 5.8-rc3
The main change here is a fix for a number of unsafe interactions
between kdb and the console system. The fixes are specific to kdb (pure
kgdb debugging does not use the console system at all). On systems with
an NMI then kdb, if it is enabled, must get messages to the user despite
potentially running from some "difficult" calling contexts. These fixes
avoid using the console system where we have been provided an
alternative (safer) way to interact with the user and, if using the
console system in unavoidable, use oops_in_progress for deadlock
avoidance. These fixes also ensure kdb honours the console enable flag.
Also included is a fix that wraps kgdb trap handling in an RCU read lock
to avoids triggering diagnostic warnings. This is a wide lock scope but
this is OK because kgdb is a stop-the-world debugger. When we stop the
world we put all the CPUs into holding pens and this inhibits RCU update
anyway.
Signed-off-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
----------------------------------------------------------------
Douglas Anderson (1):
kgdb: Avoid suspicious RCU usage warning
Sumit Garg (4):
kdb: Re-factor kdb_printf() message write code
kdb: Check status of console prior to invoking handlers
kdb: Make kdb_printf() console handling more robust
kdb: Switch to use safer dbg_io_ops over console APIs
drivers/tty/serial/kgdb_nmi.c | 2 +-
drivers/tty/serial/kgdboc.c | 32 +++++++++----------
drivers/usb/early/ehci-dbgp.c | 3 +-
include/linux/kgdb.h | 5 ++-
kernel/debug/debug_core.c | 4 +++
kernel/debug/kdb/kdb_io.c | 72 ++++++++++++++++++++++++++-----------------
6 files changed, 68 insertions(+), 50 deletions(-)