|
@@ -76,17 +76,17 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
|
|
|
static void default_idle(void)
|
|
static void default_idle(void)
|
|
|
{
|
|
{
|
|
|
/* CPU is going idle. */
|
|
/* CPU is going idle. */
|
|
|
- local_irq_disable();
|
|
|
|
|
- if (need_resched()) {
|
|
|
|
|
- local_irq_enable();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
|
if (cpu_is_offline(smp_processor_id())) {
|
|
if (cpu_is_offline(smp_processor_id())) {
|
|
|
preempt_enable_no_resched();
|
|
preempt_enable_no_resched();
|
|
|
cpu_die();
|
|
cpu_die();
|
|
|
}
|
|
}
|
|
|
#endif
|
|
#endif
|
|
|
|
|
+ local_irq_disable();
|
|
|
|
|
+ if (need_resched()) {
|
|
|
|
|
+ local_irq_enable();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
local_mcck_disable();
|
|
local_mcck_disable();
|
|
|
if (test_thread_flag(TIF_MCCK_PENDING)) {
|
|
if (test_thread_flag(TIF_MCCK_PENDING)) {
|
|
|
local_mcck_enable();
|
|
local_mcck_enable();
|