[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>
This commit is contained in:
parent
0021550c01
commit
453d9f72a9
@ -507,7 +507,7 @@ int spu_irq_class_1_bottom(struct spu *spu)
|
|||||||
if (!error) {
|
if (!error) {
|
||||||
spu_restart_dma(spu);
|
spu_restart_dma(spu);
|
||||||
} else {
|
} else {
|
||||||
__spu_trap_invalid_dma(spu);
|
spu->dma_callback(spu, SPE_EVENT_SPE_DATA_STORAGE);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ void spufs_dma_callback(struct spu *spu, int type)
|
|||||||
} else {
|
} else {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SPE_EVENT_DMA_ALIGNMENT:
|
case SPE_EVENT_DMA_ALIGNMENT:
|
||||||
|
case SPE_EVENT_SPE_DATA_STORAGE:
|
||||||
case SPE_EVENT_INVALID_DMA:
|
case SPE_EVENT_INVALID_DMA:
|
||||||
force_sig(SIGBUS, /* info, */ current);
|
force_sig(SIGBUS, /* info, */ current);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user