Index: include/linux/serial_core.h =================================================================== --- include/linux/serial_core.h (revision 119) +++ include/linux/serial_core.h (revision 120) @@ -447,8 +447,8 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch) { #ifdef SUPPORT_SYSRQ - if (port->sysrq) { - if (ch && time_before(jiffies, port->sysrq)) { + if (port->sysrq && time_after(jiffies, port->sysrq + (unsigned long)(HZ*0.01))) { + if (ch && time_before(jiffies, port->sysrq + HZ*5)) { handle_sysrq(ch, port->info ? port->info->tty : NULL); port->sysrq = 0; return 1; @@ -467,19 +467,17 @@ */ static inline int uart_handle_break(struct uart_port *port) { + int ret = 0; struct uart_info *info = port->info; #ifdef SUPPORT_SYSRQ if (port->cons && port->cons->index == port->line) { - if (!port->sysrq) { - port->sysrq = jiffies + HZ*5; - return 1; - } - port->sysrq = 0; + port->sysrq = jiffies; + ret = 1; } #endif if (port->flags & UPF_SAK) do_SAK(info->tty); - return 0; + return ret; } /**