Re: [PATCH] Adding ctrl-o sysrq hack support to 8250 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 On Fri, Dec 09, Russell King wrote:

> On Fri, Dec 09, 2005 at 04:25:31PM +0100, Erik Mouw wrote:
> > If you really want to use ctrl-o, could you make a way that pressing
> > ctrl-o twice sends a single ctrl-o to the process attached to the
> > console?
> 
> That's already handled by adding uart_handle_break() - the first call
> to this function will set sysrq status and return 1 (ignore character).
> The second call will clear sysrq status and return 0 (don't ignore).

Russel,
are you ok with the arch specific approach? I could trim it down further
by checking the model type in the device-tree, somewhere in
arch/powerpc/kernel/setup-common.c.


 drivers/serial/8250.c        |    6 ++++++
 include/asm-powerpc/serial.h |   19 +++++++++++++++++++
 2 files changed, 25 insertions(+)

Index: linux-2.6.15-rc5-olh/drivers/serial/8250.c
===================================================================
--- linux-2.6.15-rc5-olh.orig/drivers/serial/8250.c
+++ linux-2.6.15-rc5-olh/drivers/serial/8250.c
@@ -85,6 +85,8 @@ static unsigned int share_irqs = SERIAL8
 #define CONFIG_SERIAL_MANY_PORTS 1
 #endif
 
+#define arch_8250_sysrq_via_ctrl_o(x) (0)
+
 /*
  * HUB6 is always on.  This will be removed once the header
  * files have been cleaned.
@@ -1154,6 +1156,10 @@ receive_chars(struct uart_8250_port *up,
 			 */
 		}
 		ch = serial_inp(up, UART_RX);
+
+		if (arch_8250_sysrq_via_ctrl_o(ch, &up->port))
+			goto ignore_char;
+
 		flag = TTY_NORMAL;
 		up->port.icount.rx++;
 
Index: linux-2.6.15-rc5-olh/include/asm-powerpc/serial.h
===================================================================
--- linux-2.6.15-rc5-olh.orig/include/asm-powerpc/serial.h
+++ linux-2.6.15-rc5-olh/include/asm-powerpc/serial.h
@@ -15,4 +15,23 @@
 /* Default baud base if not found in device-tree */
 #define BASE_BAUD ( 1843200 / 16 )
 
+
+#if defined(SUPPORT_SYSRQ) && defined(CONFIG_PPC_PSERIES)
+	/*
+	 * Handle the SysRq ^O Hack also via ttyS0 on POWER4 systems
+	 * but only on the system console
+	 * affected Models:
+	 * p690 7040-681
+	 * p670 7040-671
+	 * p655 7039-651
+	 * p650 7038-6M2
+	 * p630 7028-6E4 tower
+	 * p630 7028-6C4 rack
+	 * p615 7029-6E3 tower
+	 * p615 7029-6C3 rack
+	 */
+#undef arch_8250_sysrq_via_ctrl_o
+#define arch_8250_sysrq_via_ctrl_o(ch, port) ((ch) == '\x0f' && uart_handle_break((port)))
+#endif
+
 #endif /* _PPC64_SERIAL_H */
-- 
short story of a lazy sysadmin:
 alias appserv=wotan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux