[PATCH 1/19] spufs: add SPU register lock
From: Ishizaki Kou <hidden>
Date: 2007-01-12 00:52:49
spu->register_lock should be held before accessing registers. Signed-off-by: Kou Ishizaki <redacted> Acked-by: Arnd Bergmann <redacted> --- Index: linux-powerpc-git/arch/powerpc/platforms/cell/spu_base.c diff -u linux-powerpc-git/arch/powerpc/platforms/cell/spu_base.c:1.1.1.1 linux-powerpc-git/arch/powerpc/platforms/cell/spu_base.c:1.2
--- linux-powerpc-git/arch/powerpc/platforms/cell/spu_base.c:1.1.1.1 Wed Dec 6 08:25:44 2006
+++ linux-powerpc-git/arch/powerpc/platforms/cell/spu_base.c Thu Dec 7 16:24:53 2006@@ -170,9 +170,11 @@ spu_irq_class_0_bottom(struct spu *spu) { unsigned long stat, mask; + unsigned long flags; spu->class_0_pending = 0; + spin_lock_irqsave(&spu->register_lock, flags); mask = spu_int_mask_get(spu, 0); stat = spu_int_stat_get(spu, 0);
@@ -188,6 +190,7 @@ __spu_trap_error(spu); spu_int_stat_clear(spu, 0, stat); + spin_unlock_irqrestore(&spu->register_lock, flags); return (stat & 0x7) ? -EIO : 0; }