summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/process.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
commiteb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (patch)
tree5746fea1605ff013be9b78a1556aaad7615d664a /arch/alpha/kernel/process.c
parent80ea5b1e15398277650e1197957053b5a71c08bc (diff)
Merge with Linux 2.1.131 plus some more MIPS goodies.
Diffstat (limited to 'arch/alpha/kernel/process.c')
-rw-r--r--arch/alpha/kernel/process.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index 6162e3375..562778366 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -133,18 +133,15 @@ generic_kill_arch (int mode, char *restart_cmd)
strncpy((char *)cpup->ipc_buffer, restart_cmd,
sizeof(cpup->ipc_buffer));
}
- }
- else {
+ } else {
flags |= 0x00040000UL; /* "remain halted" */
}
cpup->flags = flags;
mb();
- if (alpha_use_srm_setup) {
- reset_for_srm();
- set_hae(srm_hae);
- }
+ reset_for_srm();
+ set_hae(srm_hae);
#ifdef CONFIG_DUMMY_CONSOLE
/* This has the effect of reseting the VGA video origin. */
@@ -156,10 +153,8 @@ generic_kill_arch (int mode, char *restart_cmd)
/* Reset rtc to defaults. */
{
unsigned char control;
- unsigned long flags;
- /* I'm not sure if i really need to disable interrupts here. */
- save_and_cli(flags);
+ cli();
/* Reset periodic interrupt frequency. */
CMOS_WRITE(0x26, RTC_FREQ_SELECT);
@@ -170,7 +165,7 @@ generic_kill_arch (int mode, char *restart_cmd)
CMOS_WRITE(control, RTC_CONTROL);
CMOS_READ(RTC_INTR_FLAGS);
- restore_flags(flags);
+ sti();
}
#endif
@@ -181,6 +176,9 @@ generic_kill_arch (int mode, char *restart_cmd)
return;
}
+ if (alpha_using_srm)
+ srm_paging_stop();
+
halt();
}