process.c (2bbb6817c0ac1b5f2a68d720f364f98eeb1ac4fd) | process.c (1268fbc746ea1cd279886a740dcbad4ba5232225) |
---|---|
1/* 2 * linux/arch/arm/kernel/process.c 3 * 4 * Copyright (C) 1996-2000 Russell King - Converted to ARM. 5 * Original Copyright (C) 1995 Linus Torvalds 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 169 unchanged lines hidden (view full) --- 178 * is that we always respect 'hlt_counter' to prevent low power idle. 179 */ 180void cpu_idle(void) 181{ 182 local_fiq_enable(); 183 184 /* endless idle loop with no priority at all */ 185 while (1) { | 1/* 2 * linux/arch/arm/kernel/process.c 3 * 4 * Copyright (C) 1996-2000 Russell King - Converted to ARM. 5 * Original Copyright (C) 1995 Linus Torvalds 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 169 unchanged lines hidden (view full) --- 178 * is that we always respect 'hlt_counter' to prevent low power idle. 179 */ 180void cpu_idle(void) 181{ 182 local_fiq_enable(); 183 184 /* endless idle loop with no priority at all */ 185 while (1) { |
186 tick_nohz_idle_enter_norcu(); | 186 tick_nohz_idle_enter(); 187 rcu_idle_enter(); |
187 leds_event(led_idle_start); 188 while (!need_resched()) { 189#ifdef CONFIG_HOTPLUG_CPU 190 if (cpu_is_offline(smp_processor_id())) 191 cpu_die(); 192#endif 193 194 local_irq_disable(); --- 13 unchanged lines hidden (view full) --- 208 * functions should always return with IRQs 209 * enabled. 210 */ 211 WARN_ON(irqs_disabled()); 212 local_irq_enable(); 213 } 214 } 215 leds_event(led_idle_end); | 188 leds_event(led_idle_start); 189 while (!need_resched()) { 190#ifdef CONFIG_HOTPLUG_CPU 191 if (cpu_is_offline(smp_processor_id())) 192 cpu_die(); 193#endif 194 195 local_irq_disable(); --- 13 unchanged lines hidden (view full) --- 209 * functions should always return with IRQs 210 * enabled. 211 */ 212 WARN_ON(irqs_disabled()); 213 local_irq_enable(); 214 } 215 } 216 leds_event(led_idle_end); |
216 tick_nohz_idle_exit_norcu(); | 217 rcu_idle_exit(); 218 tick_nohz_idle_exit(); |
217 preempt_enable_no_resched(); 218 schedule(); 219 preempt_disable(); 220 } 221} 222 223static char reboot_mode = 'h'; 224 --- 290 unchanged lines hidden --- | 219 preempt_enable_no_resched(); 220 schedule(); 221 preempt_disable(); 222 } 223} 224 225static char reboot_mode = 'h'; 226 --- 290 unchanged lines hidden --- |