From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 28 Aug 2016 12:43:12 +0000 (+0200)
Subject: kernel: make serial port sysrq-disable patch more generic (FS#112)
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e9c517772cee8af63b4ef173a28152645a4e1b05;p=openwrt%2Fstaging%2Fblocktrron.git

kernel: make serial port sysrq-disable patch more generic (FS#112)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---

diff --git a/target/linux/generic/config-4.4 b/target/linux/generic/config-4.4
index cb2fbcedd8..ba4b8c15f7 100644
--- a/target/linux/generic/config-4.4
+++ b/target/linux/generic/config-4.4
@@ -2003,6 +2003,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
 # CONFIG_MAG3110 is not set
 # CONFIG_MAGIC_SYSRQ is not set
 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+# CONFIG_MAGIC_SYSRQ_SERIAL is not set
 # CONFIG_MAILBOX is not set
 # CONFIG_MANGLE_BOOTARGS is not set
 # CONFIG_MARVELL_PHY is not set
@@ -3561,7 +3562,6 @@ CONFIG_SERIAL_8250_NR_UARTS=2
 # CONFIG_SERIAL_8250_RSA is not set
 # CONFIG_SERIAL_8250_RT288X is not set
 CONFIG_SERIAL_8250_RUNTIME_UARTS=2
-# CONFIG_SERIAL_8250_SYSRQ is not set
 # CONFIG_SERIAL_ALTERA_JTAGUART is not set
 # CONFIG_SERIAL_ALTERA_UART is not set
 # CONFIG_SERIAL_ARC is not set
diff --git a/target/linux/generic/patches-4.4/890-8250_optional_sysrq.patch b/target/linux/generic/patches-4.4/890-8250_optional_sysrq.patch
deleted file mode 100644
index 525a7b9397..0000000000
--- a/target/linux/generic/patches-4.4/890-8250_optional_sysrq.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/drivers/tty/serial/8250/8250_port.c
-+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -15,7 +15,7 @@
-  *  membase is an 'ioremapped' cookie.
-  */
- 
--#if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-+#if defined(CONFIG_SERIAL_8250_SYSRQ) && defined(CONFIG_MAGIC_SYSRQ)
- #define SUPPORT_SYSRQ
- #endif
- 
---- a/drivers/tty/serial/8250/Kconfig
-+++ b/drivers/tty/serial/8250/Kconfig
-@@ -91,6 +91,10 @@ config SERIAL_8250_CONSOLE
- 
- 	  If unsure, say N.
- 
-+config SERIAL_8250_SYSRQ
-+	bool "Magic sysrq support on 8250/16550 devices"
-+	depends on SERIAL_8250_CONSOLE
-+
- config SERIAL_8250_GSC
- 	tristate
- 	depends on SERIAL_8250 && GSC
diff --git a/target/linux/generic/patches-4.4/890-uart_optional_sysrq.patch b/target/linux/generic/patches-4.4/890-uart_optional_sysrq.patch
new file mode 100644
index 0000000000..0e37f9456c
--- /dev/null
+++ b/target/linux/generic/patches-4.4/890-uart_optional_sysrq.patch
@@ -0,0 +1,25 @@
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -382,6 +382,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE
+ 	  This may be set to 1 or 0 to enable or disable them all, or
+ 	  to a bitmask as described in Documentation/sysrq.txt.
+ 
++config MAGIC_SYSRQ_SERIAL
++	bool "Enable magic SysRq key over serial"
++	depends on MAGIC_SYSRQ
++	default y
++
+ config DEBUG_KERNEL
+ 	bool "Kernel debugging"
+ 	help
+--- a/include/linux/serial_core.h
++++ b/include/linux/serial_core.h
+@@ -426,7 +426,7 @@ extern void uart_handle_cts_change(struc
+ extern void uart_insert_char(struct uart_port *port, unsigned int status,
+ 		 unsigned int overrun, unsigned int ch, unsigned int flag);
+ 
+-#ifdef SUPPORT_SYSRQ
++#if defined(SUPPORT_SYSRQ) && defined(CONFIG_MAGIC_SYSRQ_SERIAL)
+ static inline int
+ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
+ {