Message ID | 20090408.210457.60079516.davem@davemloft.net |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
> > This another problem from my 6-CPU E3000 - just got it while compiling > > 2.6.29-rc7 but the compilation continues fine. > > > > [ 412.896568] ================================= > > [ 412.964373] [ INFO: inconsistent lock state ] > > [ 413.016474] 2.6.29-rc6 #2 > > [ 413.047705] --------------------------------- > > [ 413.099822] inconsistent {softirq-on-W} -> {in-softirq-W} usage. > > [ 413.171717] cc1/2007 [HC0[0]:SC1[1]:HE0:SE0] takes: > > [ 413.230048] (call_function_lock){-+..}, at: [<000000000049003c>] generic_smp_call_function_interrupt+0x11c/0x1c0 > > [ 413.353010] {softirq-on-W} state was registered at: > > Please try this patch: It seems to work. When I got my E3000 hooked up to electricity again four days ago, I compiled the latest git and found this patch already included. It has seen some stress since, and a reboot into .30-rc3, aga still seems to work fine. Thank you for taking care of it!
From: Meelis Roos <mroos@linux.ee> Date: Wed, 22 Apr 2009 22:53:44 +0300 (EEST) >> > This another problem from my 6-CPU E3000 - just got it while compiling >> > 2.6.29-rc7 but the compilation continues fine. >> > >> > [ 412.896568] ================================= >> > [ 412.964373] [ INFO: inconsistent lock state ] >> > [ 413.016474] 2.6.29-rc6 #2 >> > [ 413.047705] --------------------------------- >> > [ 413.099822] inconsistent {softirq-on-W} -> {in-softirq-W} usage. >> > [ 413.171717] cc1/2007 [HC0[0]:SC1[1]:HE0:SE0] takes: >> > [ 413.230048] (call_function_lock){-+..}, at: [<000000000049003c>] generic_smp_call_function_interrupt+0x11c/0x1c0 >> > [ 413.353010] {softirq-on-W} state was registered at: >> >> Please try this patch: > > It seems to work. When I got my E3000 hooked up to electricity again > four days ago, I compiled the latest git and found this patch already > included. It has seen some stress since, and a reboot into .30-rc3, aga > still seems to work fine. Thank you for taking care of it! Thank you for testing. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index f1c8208..1de47d2 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c @@ -119,9 +119,9 @@ void __cpuinit smp_callin(void) while (!cpu_isset(cpuid, smp_commenced_mask)) rmb(); - ipi_call_lock(); + ipi_call_lock_irq(); cpu_set(cpuid, cpu_online_map); - ipi_call_unlock(); + ipi_call_unlock_irq(); /* idle thread is expected to have preempt disabled */ preempt_disable();