diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 01:06:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 01:06:24 -0400 |
commit | e98bae7592a44bdce2e49ccd64f3c7ffe244a0f6 (patch) | |
tree | 1887da3331c5214c330226506d229222b454e960 /arch/sparc/kernel/process_32.c | |
parent | 4b382d0643603819e8b48da58efc254cabc22574 (diff) | |
parent | f400bdb1d6de4344980cf39041497b288090dd33 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6: (28 commits)
sparc32: fix build, fix missing cpu_relax declaration
SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI
sparc32,leon: Remove unnecessary page_address calls in LEON DMA API.
sparc: convert old cpumask API into new one
sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines
sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines
sparc32,leon: Implemented SMP IPIs for LEON CPU
sparc32: implement SMP IPIs using the generic functions
sparc32,leon: SMP power down implementation
sparc32,leon: added some SMP comments
sparc: add {read,write}*_be routines
sparc32,leon: don't rely on bootloader to mask IRQs
sparc32,leon: operate on boot-cpu IRQ controller registers
sparc32: always define boot_cpu_id
sparc32: removed unused code, implemented by generic code
sparc32: avoid build warning at mm/percpu.c:1647
sparc32: always register a PROM based early console
sparc32: probe for cpu info only during startup
sparc: consolidate show_cpuinfo in cpu.c
sparc32,leon: implement genirq CPU affinity
...
Diffstat (limited to 'arch/sparc/kernel/process_32.c')
-rw-r--r-- | arch/sparc/kernel/process_32.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index 17529298c50a..c8cc461ff75f 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c | |||
@@ -128,8 +128,16 @@ void cpu_idle(void) | |||
128 | set_thread_flag(TIF_POLLING_NRFLAG); | 128 | set_thread_flag(TIF_POLLING_NRFLAG); |
129 | /* endless idle loop with no priority at all */ | 129 | /* endless idle loop with no priority at all */ |
130 | while(1) { | 130 | while(1) { |
131 | while (!need_resched()) | 131 | #ifdef CONFIG_SPARC_LEON |
132 | cpu_relax(); | 132 | if (pm_idle) { |
133 | while (!need_resched()) | ||
134 | (*pm_idle)(); | ||
135 | } else | ||
136 | #endif | ||
137 | { | ||
138 | while (!need_resched()) | ||
139 | cpu_relax(); | ||
140 | } | ||
133 | preempt_enable_no_resched(); | 141 | preempt_enable_no_resched(); |
134 | schedule(); | 142 | schedule(); |
135 | preempt_disable(); | 143 | preempt_disable(); |