[PATCHv2-next 0/3] serial/sysrq: Add MAGIC_SYSRQ_SERIAL_SEQUENCE
From: Dmitry Safonov
Date: Tue Jan 14 2020 - 12:19:25 EST
Magic sysrq has proven for Arista usecases to be useful for debugging issues in field, over serial line when the switch is in such bad state
that it can't accept network connections anymore.
Unfortunately, having sysrq always enabled doesn't work for some
embedded boards that tend to generate garbage on serial line (including
BREAKs). Since commit 732dbf3a6104 ("serial: do not accept sysrq
characters via serial port"), it's possible to keep sysrq enabled, but
over serial line.
Add a way to enable sysrq on a uart, where currently it can be
constantly either on or off (CONFIG_MAGIC_SYSRQ_SERIAL).
While doing so, cleanup __sysrq_enabled and serial_core header file.
Sending against -next tree as it's based on removing SUPPORT_SYSRQ
ifdeffery [1].
Changes since v1 [2]:
- Fix typo in pr_info() message (noticed by Randy Dunlap, thanks)
- Add SYSRQ_TIMEOUT define for timeout after BREAK and separate removing
@unused member of uart_port into cleanup patch (by Greg's review, thanks)
- Add const qualifier, make uart_try_toggle_sysrq() bool function
(Joe Perches, thanks)
- Fix !CONFIG_SYSRQ and CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
build failures (kudos to kbuild test robot)
[1]: https://lkml.kernel.org/r/20191213000657.931618-1-dima@xxxxxxxxxx
[2]: https://lkml.kernel.org/r/20200109215444.95995-1-dima@xxxxxxxxxx
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Iurii Zaikin <yzaikin@xxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Vasiliy Khoruzhick <vasilykh@xxxxxxxxxx>
Cc: linux-serial@xxxxxxxxxxxxxxx
Thanks,
Dmitry
Dmitry Safonov (3):
sysctl/sysrq: Remove __sysrq_enabled copy
serial/sysrq: Add MAGIC_SYSRQ_SERIAL_SEQUENCE
serial_core: Remove unused member in uart_port
drivers/tty/serial/serial_core.c | 75 +++++++++++++++++++++++++++++---
drivers/tty/sysrq.c | 7 +++
include/linux/serial_core.h | 2 +-
include/linux/sysrq.h | 7 +++
kernel/sysctl.c | 41 +++++++++--------
lib/Kconfig.debug | 8 ++++
6 files changed, 113 insertions(+), 27 deletions(-)
--
2.24.1