[PATCH 2.6.11-rc1] add local_irq_enable() to cpu_idle()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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();
 	}
 }


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux