summaryrefslogtreecommitdiffstats
path: root/kernel/panic.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/panic.c')
-rw-r--r--kernel/panic.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/kernel/panic.c b/kernel/panic.c
index 7e04fdc31..d42541e9f 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -7,15 +7,15 @@
/*
* This function is used through-out the kernel (including mm and fs)
* to indicate a major problem.
- * Support for machines without PC-style console hardware - <dfrick@dial.eunet.ch>, July 96
*/
#include <stdarg.h>
+#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/delay.h>
-#include <linux/config.h>
-#include <asm/system.h>
+
+#include <asm/sgialib.h>
asmlinkage void sys_sync(void); /* it's really int */
extern void do_unblank_screen(void);
@@ -33,7 +33,6 @@ NORET_TYPE void panic(const char * fmt, ...)
{
static char buf[1024];
va_list args;
- int i;
va_start(args, fmt);
vsprintf(buf, fmt, args);
@@ -44,21 +43,28 @@ NORET_TYPE void panic(const char * fmt, ...)
else
sys_sync();
-#ifndef CONFIG_SERIAL_ONLY_CONSOLE
do_unblank_screen();
-#endif
+#ifdef CONFIG_SGI
if (panic_timeout > 0)
{
+ int i;
+
/*
* Delay timeout seconds before rebooting the machine.
* We can't use the "normal" timers since we just panicked..
*/
- printk(KERN_EMERG "Rebooting in %d seconds..",panic_timeout);
+ prom_printf(KERN_EMERG "Rebooting in %d seconds..",panic_timeout);
for(i = 0; i < (panic_timeout*1000); i++)
udelay(1000);
hard_reset_now();
}
+#if 0
+ printk("Hit a key\n");
+ prom_getchar();
+ romvec->imode();
+#endif
+#endif
for(;;);
}