diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2013-03-21 17:49:37 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2013-04-08 11:39:23 -0400 |
| commit | a123322d8afcfb5f86e0cc0062024084658aeeb2 (patch) | |
| tree | 129e9960ddffde8609bfc1db1e2e38643289783b /arch/alpha/kernel | |
| parent | fa35e42a00ec0120db2b5128753206efb288e789 (diff) | |
alpha: Use generic idle loop
The core provides a generic idle poll loop.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Reviewed-by: Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Link: http://lkml.kernel.org/r/20130321215233.766017538@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/alpha/kernel')
| -rw-r--r-- | arch/alpha/kernel/process.c | 19 | ||||
| -rw-r--r-- | arch/alpha/kernel/smp.c | 3 |
2 files changed, 1 insertions, 21 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index 63d27fb9b023..a3fd8a29ccac 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c | |||
| @@ -46,25 +46,6 @@ | |||
| 46 | void (*pm_power_off)(void) = machine_power_off; | 46 | void (*pm_power_off)(void) = machine_power_off; |
| 47 | EXPORT_SYMBOL(pm_power_off); | 47 | EXPORT_SYMBOL(pm_power_off); |
| 48 | 48 | ||
| 49 | void | ||
| 50 | cpu_idle(void) | ||
| 51 | { | ||
| 52 | current_thread_info()->status |= TS_POLLING; | ||
| 53 | |||
| 54 | while (1) { | ||
| 55 | /* FIXME -- EV6 and LCA45 know how to power down | ||
| 56 | the CPU. */ | ||
| 57 | |||
| 58 | rcu_idle_enter(); | ||
| 59 | while (!need_resched()) | ||
| 60 | cpu_relax(); | ||
| 61 | |||
| 62 | rcu_idle_exit(); | ||
| 63 | schedule_preempt_disabled(); | ||
| 64 | } | ||
| 65 | } | ||
| 66 | |||
| 67 | |||
| 68 | struct halt_info { | 49 | struct halt_info { |
| 69 | int mode; | 50 | int mode; |
| 70 | char *restart_cmd; | 51 | char *restart_cmd; |
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 9603bc234b47..7b60834fb4b2 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
| @@ -167,8 +167,7 @@ smp_callin(void) | |||
| 167 | cpuid, current, current->active_mm)); | 167 | cpuid, current, current->active_mm)); |
| 168 | 168 | ||
| 169 | preempt_disable(); | 169 | preempt_disable(); |
| 170 | /* Do nothing. */ | 170 | cpu_startup_entry(CPUHP_ONLINE); |
| 171 | cpu_idle(); | ||
| 172 | } | 171 | } |
| 173 | 172 | ||
| 174 | /* Wait until hwrpb->txrdy is clear for cpu. Return -1 on timeout. */ | 173 | /* Wait until hwrpb->txrdy is clear for cpu. Return -1 on timeout. */ |
