diff options
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/kernel/process.c | 6 | ||||
-rw-r--r-- | arch/alpha/kernel/smp.c | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index d6fde98b74b3..83638aa096d5 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/tty.h> | 28 | #include <linux/tty.h> |
29 | #include <linux/console.h> | 29 | #include <linux/console.h> |
30 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
31 | #include <linux/rcupdate.h> | ||
31 | 32 | ||
32 | #include <asm/reg.h> | 33 | #include <asm/reg.h> |
33 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
@@ -54,9 +55,12 @@ cpu_idle(void) | |||
54 | /* FIXME -- EV6 and LCA45 know how to power down | 55 | /* FIXME -- EV6 and LCA45 know how to power down |
55 | the CPU. */ | 56 | the CPU. */ |
56 | 57 | ||
58 | rcu_idle_enter(); | ||
57 | while (!need_resched()) | 59 | while (!need_resched()) |
58 | cpu_relax(); | 60 | cpu_relax(); |
59 | schedule(); | 61 | |
62 | rcu_idle_exit(); | ||
63 | schedule_preempt_disabled(); | ||
60 | } | 64 | } |
61 | } | 65 | } |
62 | 66 | ||
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 35ddc02bfa4a..a41ad90a97a6 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -166,6 +166,7 @@ smp_callin(void) | |||
166 | DBGS(("smp_callin: commencing CPU %d current %p active_mm %p\n", | 166 | DBGS(("smp_callin: commencing CPU %d current %p active_mm %p\n", |
167 | cpuid, current, current->active_mm)); | 167 | cpuid, current, current->active_mm)); |
168 | 168 | ||
169 | preempt_disable(); | ||
169 | /* Do nothing. */ | 170 | /* Do nothing. */ |
170 | cpu_idle(); | 171 | cpu_idle(); |
171 | } | 172 | } |