git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'nfs-for-2.6.35' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[pandora-kernel.git]
/
arch
/
sh
/
kernel
/
idle.c
diff --git
a/arch/sh/kernel/idle.c
b/arch/sh/kernel/idle.c
index
273f890
..
425d604
100644
(file)
--- a/
arch/sh/kernel/idle.c
+++ b/
arch/sh/kernel/idle.c
@@
-19,6
+19,7
@@
#include <asm/pgalloc.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/pgalloc.h>
#include <asm/system.h>
#include <asm/atomic.h>
+#include <asm/smp.h>
void (*pm_idle)(void) = NULL;
void (*pm_idle)(void) = NULL;
@@
-89,10
+90,13
@@
void cpu_idle(void)
while (1) {
tick_nohz_stop_sched_tick(1);
while (1) {
tick_nohz_stop_sched_tick(1);
- while (!need_resched()
&& cpu_online(cpu)
) {
+ while (!need_resched()) {
check_pgt_cache();
rmb();
check_pgt_cache();
rmb();
+ if (cpu_is_offline(cpu))
+ play_dead();
+
local_irq_disable();
/* Don't trace irqs off for idle */
stop_critical_timings();
local_irq_disable();
/* Don't trace irqs off for idle */
stop_critical_timings();
@@
-133,7
+137,7
@@
static void do_nothing(void *unused)
void stop_this_cpu(void *unused)
{
local_irq_disable();
void stop_this_cpu(void *unused)
{
local_irq_disable();
-
cpu_clear(smp_processor_id(), cpu_online_map
);
+
set_cpu_online(smp_processor_id(), false
);
for (;;)
cpu_sleep();
for (;;)
cpu_sleep();