Hi Ralf, We need to add local_irq_enable() to cpu_idle(). Please add this patch to v2.6. I don't have any information about R3081. I didn't fix r3081_wait(). Yoichi Signed-off-by: Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> diff -urN -X dontdiff a-orig/arch/mips/kernel/cpu-probe.c a/arch/mips/kernel/cpu-probe.c --- a-orig/arch/mips/kernel/cpu-probe.c Sun Oct 31 21:49:07 2004 +++ a/arch/mips/kernel/cpu-probe.c Tue Jan 18 00:26:12 2005 @@ -42,10 +42,12 @@ { unsigned long cfg = read_c0_conf(); write_c0_conf(cfg | TX39_CONF_HALT); + local_irq_enable(); } static void r4k_wait(void) { + local_irq_enable(); __asm__(".set\tmips3\n\t" "wait\n\t" ".set\tmips0"); @@ -61,6 +63,7 @@ void au1k_wait(void) { + local_irq_enable(); #ifdef CONFIG_PM /* using the wait instruction makes CP0 counter unusable */ __asm__(".set\tmips3\n\t" diff -urN -X dontdiff a-orig/arch/mips/kernel/process.c a/arch/mips/kernel/process.c --- a-orig/arch/mips/kernel/process.c Sat Jan 8 23:19:16 2005 +++ a/arch/mips/kernel/process.c Mon Jan 17 21:43:08 2005 @@ -58,6 +58,8 @@ while (!need_resched()) if (cpu_wait) (*cpu_wait)(); + else + local_irq_enable(); schedule(); } }