From 21b8e3d73d4cc15ebd721cc890a881ac8ec0f15b Mon Sep 17 00:00:00 2001 From: Andre Detsch Date: Thu, 20 Dec 2007 16:39:59 +0900 Subject: [PATCH] --- yaml --- r: 81153 b: refs/heads/master c: 18789fb1c3311dd8c25acb6eb5ccab05771843f2 h: refs/heads/master i: 81151: 3ef13a0506408c08f10c7be38116777f12d5366e v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c | 2 +- trunk/arch/powerpc/platforms/cell/spufs/fault.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index e97995c0dfd1..837047cfc762 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 90608a2928a86b9464a8698275a1138e82e3a010 +refs/heads/master: 18789fb1c3311dd8c25acb6eb5ccab05771843f2 diff --git a/trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c b/trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c index d4495531e5b2..50d98a154aaf 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c @@ -373,7 +373,7 @@ static int spu_backing_send_mfc_command(struct spu_context *ctx, static void spu_backing_restart_dma(struct spu_context *ctx) { - /* nothing to do here */ + ctx->csa.priv2.mfc_control_RW |= MFC_CNTL_RESTART_DMA_COMMAND; } struct spu_context_ops spu_backing_ops = { diff --git a/trunk/arch/powerpc/platforms/cell/spufs/fault.c b/trunk/arch/powerpc/platforms/cell/spufs/fault.c index 825001c2b095..eff4d291ba85 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/fault.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/fault.c @@ -53,9 +53,10 @@ static void spufs_handle_event(struct spu_context *ctx, info.si_code = BUS_OBJERR; break; case SPE_EVENT_SPE_DATA_STORAGE: - info.si_signo = SIGBUS; + info.si_signo = SIGSEGV; info.si_addr = (void __user *)ea; - info.si_code = BUS_ADRERR; + info.si_code = SEGV_ACCERR; + ctx->ops->restart_dma(ctx); break; case SPE_EVENT_DMA_ALIGNMENT: info.si_signo = SIGBUS;