From: Daniel Hellstrom <daniel@xxxxxxxxxxx> Date: Wed, 2 Feb 2011 20:40:55 +0100 > The current sparc32 SMP IPI generation is implemented the > cross call function. The cross call function uses IRQ15 the > NMI, this is has the effect that IPIs will interrupt IRQ > critical areas and hang the system. Typically on/after > spin_lock_irqsave calls can be aborted. > > The cross call functionality must still exist to flush > cache/TLBS. > > This patch provides CPU models a custom way to implement > generation of IPIs on the generic code's request. The > typical approach is to generate an IRQ for each IPI case. > > After this patch each sparc32 SMP CPU model needs to > implement IPIs in order to function properly. > > Signed-off-by: Daniel Hellstrom <daniel@xxxxxxxxxxx> Ok, this looks mostly fine to me. Once we have the sun4m/sun4d versions written I can think about applying this. We might want to abstract out the common code of the dispatch and service stuff you have for LEON, otherwise we'll have 3 copies of that code that sets and clears the mask state. Perhaps something using BTFIXUP or similar. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html