diff options
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/fault.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/fault.c b/arch/powerpc/platforms/cell/spufs/fault.c index 07f88de0544..f53a0743747 100644 --- a/arch/powerpc/platforms/cell/spufs/fault.c +++ b/arch/powerpc/platforms/cell/spufs/fault.c @@ -74,18 +74,18 @@ good_area: goto bad_area; } ret = 0; - fault = handle_mm_fault(mm, vma, ea, is_write); - if (unlikely(fault & VM_FAULT_ERROR)) { - if (fault & VM_FAULT_OOM) { + *flt = handle_mm_fault(mm, vma, ea, is_write); + if (unlikely(*flt & VM_FAULT_ERROR)) { + if (*flt & VM_FAULT_OOM) { ret = -ENOMEM; goto bad_area; - } else if (fault & VM_FAULT_SIGBUS) { + } else if (*flt & VM_FAULT_SIGBUS) { ret = -EFAULT; goto bad_area; } BUG(); } - if (fault & VM_FAULT_MAJOR) + if (*flt & VM_FAULT_MAJOR) current->maj_flt++; else current->min_flt++; @@ -210,15 +210,15 @@ int spufs_handle_class1(struct spu_context *ctx) * In case of unhandled error report the problem to user space. */ if (!ret) { - if (flt == VM_FAULT_MINOR) - ctx->stats.min_flt++; - else + if (flt & VM_FAULT_MAJOR) ctx->stats.maj_flt++; + else + ctx->stats.min_flt++; if (ctx->state == SPU_STATE_RUNNABLE) { - if (flt == VM_FAULT_MINOR) - ctx->spu->stats.min_flt++; - else + if (flt & VM_FAULT_MAJOR) ctx->spu->stats.maj_flt++; + else + ctx->spu->stats.min_flt++; } if (ctx->spu) |