[POWERPC] spufs: Add SPU register lock

spu->register_lock should be held before accessing registers.

Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Ishizaki Kou 2007-01-12 09:52:41 +09:00 committed by Paul Mackerras
parent c53653130f
commit 3650cfe2e5
1 changed files with 3 additions and 0 deletions

View File

@ -170,9 +170,11 @@ int
spu_irq_class_0_bottom(struct spu *spu) spu_irq_class_0_bottom(struct spu *spu)
{ {
unsigned long stat, mask; unsigned long stat, mask;
unsigned long flags;
spu->class_0_pending = 0; spu->class_0_pending = 0;
spin_lock_irqsave(&spu->register_lock, flags);
mask = spu_int_mask_get(spu, 0); mask = spu_int_mask_get(spu, 0);
stat = spu_int_stat_get(spu, 0); stat = spu_int_stat_get(spu, 0);
@ -188,6 +190,7 @@ spu_irq_class_0_bottom(struct spu *spu)
__spu_trap_error(spu); __spu_trap_error(spu);
spu_int_stat_clear(spu, 0, stat); spu_int_stat_clear(spu, 0, stat);
spin_unlock_irqrestore(&spu->register_lock, flags);
return (stat & 0x7) ? -EIO : 0; return (stat & 0x7) ? -EIO : 0;
} }