Looking around, it looks like c6x has the same bug. Some other architectures (tile) have such subtle implementations (where is __insn_mtspr() defined?) that I have a hard time judging. And maybe I missed something, but the rest seem ok.
Linus On Sat, Apr 6, 2013 at 9:13 AM, Linus Torvalds <torva...@linux-foundation.org> wrote: > This is all *COMPLETELY* wrong. > > Neither the normal preempt macros, nor the plain spinlocks, should > protect anything at all against interrupts. > > The real protection should come from the spin_lock_irqsave() in > lock_timer_base(), not from spinlocks, and not from preemption. > > It sounds like ARC is completely buggered, and hasn't made the irq > disable be a compiler barrier. That's an ARC bug, and it's a big one, > and can affect a lot more than just the timers. > > So the real fix is to add a "memory" clobber to > arch_local_irq_save/restore() and friends, so that the compiler > doesn't get to cache memory state from the irq-enabled region into the > irq-disabled one. > > Fix ARC, don't try to blame generic code. You should have asked > yourself why only ARC saw this bug, when the code apparently works > fine for everybody else! > > Linus > > On Sat, Apr 6, 2013 at 6:34 AM, Vineet Gupta <vineet.gup...@synopsys.com> > wrote: >>> On 04/05/2013 10:06 AM, Vineet Gupta wrote: >>> Hi Thomas, >>> >>> Given that we are closing on 3.9 release, and that one/more of these >>> patches fix a >>> real issue for us - can you please consider my earlier patch to fix >>> timer_pending() only for 3.9 >>> [http://www.spinics.net/lists/kernel/msg1508224.html] >>> This will be a localized / low risk change for this late in cycle. >>> >>> For 3.10 - assuming preempt_* change is blessed, we can revert this one and >>> add >>> that fuller/better fix. >>> >>> What do you think ? >>> >>> Thx, >>> -Vineet >>> >> >> Ping ! Sorry for pestering, but one of the fixes is needed before 3.9 goes >> out. >> >> Simple localized fix: http://www.spinics.net/lists/kernel/msg1508224.html >> Better but risky: http://www.spinics.net/lists/kernel/msg1510885.html >> >> Thx, >> -Vineet -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/