aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2006-11-20 12:45:03 -0500
committerPaul Mackerras <paulus@samba.org>2006-12-04 04:39:54 -0500
commit453d9f72a91d798c3e3c4b4bed26210926dfb57b (patch)
tree8d7530350a18f43df4ec017c649e182e5481b787 /arch
parent0021550c0199b2bf5e434eda0216144074537fc7 (diff)
[POWERPC] spufs: Return correct event for data storage interrupt
When we attempt an MFC DMA to an unmapped address, the event returned from spu_run should be SPE_EVENT_SPE_DATA_STORAGE, not SPE_EVENT_INVALID_DMA. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/run.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index 56ff8b36103d..d4f4f396288f 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -507,7 +507,7 @@ int spu_irq_class_1_bottom(struct spu *spu)
507 if (!error) { 507 if (!error) {
508 spu_restart_dma(spu); 508 spu_restart_dma(spu);
509 } else { 509 } else {
510 __spu_trap_invalid_dma(spu); 510 spu->dma_callback(spu, SPE_EVENT_SPE_DATA_STORAGE);
511 } 511 }
512 return ret; 512 return ret;
513} 513}
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c
index a4a0080c2233..88a41d83a79b 100644
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
@@ -26,6 +26,7 @@ void spufs_dma_callback(struct spu *spu, int type)
26 } else { 26 } else {
27 switch (type) { 27 switch (type) {
28 case SPE_EVENT_DMA_ALIGNMENT: 28 case SPE_EVENT_DMA_ALIGNMENT:
29 case SPE_EVENT_SPE_DATA_STORAGE:
29 case SPE_EVENT_INVALID_DMA: 30 case SPE_EVENT_INVALID_DMA:
30 force_sig(SIGBUS, /* info, */ current); 31 force_sig(SIGBUS, /* info, */ current);
31 break; 32 break;