projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86...
[cascardo/linux.git]
/
arch
/
x86
/
kernel
/
process.c
diff --git
a/arch/x86/kernel/process.c
b/arch/x86/kernel/process.c
index
c622772
..
9bfc3f7
100644
(file)
--- a/
arch/x86/kernel/process.c
+++ b/
arch/x86/kernel/process.c
@@
-1,6
+1,7
@@
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mm.h>
+#include <asm/idle.h>
#include <linux/smp.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/smp.h>
#include <linux/slab.h>
#include <linux/sched.h>
@@
-8,6
+9,7
@@
#include <linux/pm.h>
#include <linux/clockchips.h>
#include <asm/system.h>
#include <linux/pm.h>
#include <linux/clockchips.h>
#include <asm/system.h>
+#include <asm/apic.h>
unsigned long idle_halt;
EXPORT_SYMBOL(idle_halt);
unsigned long idle_halt;
EXPORT_SYMBOL(idle_halt);
@@
-122,6
+124,21
@@
void default_idle(void)
EXPORT_SYMBOL(default_idle);
#endif
EXPORT_SYMBOL(default_idle);
#endif
+void stop_this_cpu(void *dummy)
+{
+ local_irq_disable();
+ /*
+ * Remove this CPU:
+ */
+ cpu_clear(smp_processor_id(), cpu_online_map);
+ disable_local_APIC();
+
+ for (;;) {
+ if (hlt_works(smp_processor_id()))
+ halt();
+ }
+}
+
static void do_nothing(void *unused)
{
}
static void do_nothing(void *unused)
{
}