Commit 68576cf1 authored by Thomas Bogendoerfer's avatar Thomas Bogendoerfer Committed by Linus Torvalds

IP22ZILOG: fix lockup and sysrq

 - fix lockup when switching from early console to real console
 - make sysrq reliable
 - fix panic, if sysrq is issued before console is opened
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6d4f5879
...@@ -31,25 +31,6 @@ ...@@ -31,25 +31,6 @@
unsigned long sgi_gfxaddr; unsigned long sgi_gfxaddr;
EXPORT_SYMBOL_GPL(sgi_gfxaddr); EXPORT_SYMBOL_GPL(sgi_gfxaddr);
/*
* Stop-A is originally a Sun thing that isn't standard on IP22 so to avoid
* accidents it's disabled by default on IP22.
*
* FIXME: provide a mechanism to change the value of stop_a_enabled.
*/
int stop_a_enabled;
void ip22_do_break(void)
{
if (!stop_a_enabled)
return;
printk("\n");
ArcEnterInteractiveMode();
}
EXPORT_SYMBOL(ip22_do_break);
extern void ip22_be_init(void) __init; extern void ip22_be_init(void) __init;
void __init plat_mem_setup(void) void __init plat_mem_setup(void)
......
This diff is collapsed.
...@@ -209,8 +209,6 @@ extern void *set_except_vector(int n, void *addr); ...@@ -209,8 +209,6 @@ extern void *set_except_vector(int n, void *addr);
extern unsigned long ebase; extern unsigned long ebase;
extern void per_cpu_trap_init(void); extern void per_cpu_trap_init(void);
extern int stop_a_enabled;
/* /*
* See include/asm-ia64/system.h; prevents deadlock on SMP * See include/asm-ia64/system.h; prevents deadlock on SMP
* systems. * systems.
......
...@@ -437,7 +437,7 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch) ...@@ -437,7 +437,7 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
#ifdef SUPPORT_SYSRQ #ifdef SUPPORT_SYSRQ
if (port->sysrq) { if (port->sysrq) {
if (ch && time_before(jiffies, port->sysrq)) { if (ch && time_before(jiffies, port->sysrq)) {
handle_sysrq(ch, port->info->tty); handle_sysrq(ch, port->info ? port->info->tty : NULL);
port->sysrq = 0; port->sysrq = 0;
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment