projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[CPUFREQ] Longhaul - Redo Longhaul ver. 2
[powerpc.git]
/
arch
/
ia64
/
kernel
/
process.c
diff --git
a/arch/ia64/kernel/process.c
b/arch/ia64/kernel/process.c
index
ea914cc
..
ae96d41
100644
(file)
--- a/
arch/ia64/kernel/process.c
+++ b/
arch/ia64/kernel/process.c
@@
-8,8
+8,6
@@
* 2005-10-07 Keith Owens <kaos@sgi.com>
* Add notify_die() hooks.
*/
* 2005-10-07 Keith Owens <kaos@sgi.com>
* Add notify_die() hooks.
*/
-#define __KERNEL_SYSCALLS__ /* see <asm/unistd.h> */
-
#include <linux/cpu.h>
#include <linux/pm.h>
#include <linux/elf.h>
#include <linux/cpu.h>
#include <linux/pm.h>
#include <linux/elf.h>
@@
-36,6
+34,7
@@
#include <asm/ia32.h>
#include <asm/irq.h>
#include <asm/kdebug.h>
#include <asm/ia32.h>
#include <asm/irq.h>
#include <asm/kdebug.h>
+#include <asm/kexec.h>
#include <asm/pgalloc.h>
#include <asm/processor.h>
#include <asm/sal.h>
#include <asm/pgalloc.h>
#include <asm/processor.h>
#include <asm/sal.h>
@@
-270,10
+269,16
@@
cpu_idle (void)
/* endless idle loop with no priority at all */
while (1) {
/* endless idle loop with no priority at all */
while (1) {
- if (can_do_pal_halt)
+ if (can_do_pal_halt)
{
current_thread_info()->status &= ~TS_POLLING;
current_thread_info()->status &= ~TS_POLLING;
- else
+ /*
+ * TS_POLLING-cleared state must be visible before we
+ * test NEED_RESCHED:
+ */
+ smp_mb();
+ } else {
current_thread_info()->status |= TS_POLLING;
current_thread_info()->status |= TS_POLLING;
+ }
if (!need_resched()) {
void (*idle)(void);
if (!need_resched()) {
void (*idle)(void);
@@
-799,6
+804,21
@@
cpu_halt (void)
ia64_pal_halt(min_power_state);
}
ia64_pal_halt(min_power_state);
}
+void machine_shutdown(void)
+{
+#ifdef CONFIG_HOTPLUG_CPU
+ int cpu;
+
+ for_each_online_cpu(cpu) {
+ if (cpu != smp_processor_id())
+ cpu_down(cpu);
+ }
+#endif
+#ifdef CONFIG_KEXEC
+ kexec_disable_iosapic();
+#endif
+}
+
void
machine_restart (char *restart_cmd)
{
void
machine_restart (char *restart_cmd)
{