Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 366135
b: refs/heads/master
c: cdbedc6
h: refs/heads/master
i:
  366133: 8aab005
  366131: df236fe
  366127: df9157d
v: v3
  • Loading branch information
Thomas Gleixner committed Apr 8, 2013
1 parent e2ae579 commit ffa3d7c
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 35 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e962bb9e9cf73b8c8893c95903e791dd5ec19fb4
refs/heads/master: cdbedc61c8d0122ad682815936f0d11df1fe5f57
1 change: 1 addition & 0 deletions trunk/arch/mips/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ config MIPS
select HAVE_MEMBLOCK_NODE_MAP
select ARCH_DISCARD_MEMBLOCK
select GENERIC_SMP_IDLE_THREAD
select GENERIC_IDLE_LOOP
select BUILDTIME_EXTABLE_SORT
select GENERIC_CLOCKEVENTS
select GENERIC_CMOS_UPDATE
Expand Down
48 changes: 15 additions & 33 deletions trunk/arch/mips/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,44 +41,26 @@
#include <asm/inst.h>
#include <asm/stacktrace.h>

/*
* The idle thread. There's no useful work to be done, so just try to conserve
* power and have a low exit latency (ie sit in a loop waiting for somebody to
* say that they'd like to reschedule)
*/
void __noreturn cpu_idle(void)
#ifdef CONFIG_HOTPLUG_CPU
void arch_cpu_idle_dead(void)
{
int cpu;

/* CPU is going idle. */
cpu = smp_processor_id();
/* What the heck is this check doing ? */
if (!cpu_isset(smp_processor_id(), cpu_callin_map))
play_dead();
}
#endif

/* endless idle loop with no priority at all */
while (1) {
tick_nohz_idle_enter();
rcu_idle_enter();
while (!need_resched() && cpu_online(cpu)) {
void arch_cpu_idle(void)
{
#ifdef CONFIG_MIPS_MT_SMTC
extern void smtc_idle_loop_hook(void);
extern void smtc_idle_loop_hook(void);

smtc_idle_loop_hook();
smtc_idle_loop_hook();
#endif

if (cpu_wait) {
/* Don't trace irqs off for idle */
stop_critical_timings();
(*cpu_wait)();
start_critical_timings();
}
}
#ifdef CONFIG_HOTPLUG_CPU
if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map))
play_dead();
#endif
rcu_idle_exit();
tick_nohz_idle_exit();
schedule_preempt_disabled();
}
if (cpu_wait)
(*cpu_wait)();
else
local_irq_enable();
}

asmlinkage void ret_from_fork(void);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/mips/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ asmlinkage __cpuinit void start_secondary(void)
WARN_ON_ONCE(!irqs_disabled());
mp_ops->smp_finish();

cpu_idle();
cpu_startup_entry(CPUHP_ONLINE);
}

/*
Expand Down

0 comments on commit ffa3d7c

Please sign in to comment.