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 07f88de0544d..f53a07437472 100644 --- a/arch/powerpc/platforms/cell/spufs/fault.c +++ b/arch/powerpc/platforms/cell/spufs/fault.c | |||
@@ -74,18 +74,18 @@ good_area: | |||
74 | goto bad_area; | 74 | goto bad_area; |
75 | } | 75 | } |
76 | ret = 0; | 76 | ret = 0; |
77 | fault = handle_mm_fault(mm, vma, ea, is_write); | 77 | *flt = handle_mm_fault(mm, vma, ea, is_write); |
78 | if (unlikely(fault & VM_FAULT_ERROR)) { | 78 | if (unlikely(*flt & VM_FAULT_ERROR)) { |
79 | if (fault & VM_FAULT_OOM) { | 79 | if (*flt & VM_FAULT_OOM) { |
80 | ret = -ENOMEM; | 80 | ret = -ENOMEM; |
81 | goto bad_area; | 81 | goto bad_area; |
82 | } else if (fault & VM_FAULT_SIGBUS) { | 82 | } else if (*flt & VM_FAULT_SIGBUS) { |
83 | ret = -EFAULT; | 83 | ret = -EFAULT; |
84 | goto bad_area; | 84 | goto bad_area; |
85 | } | 85 | } |
86 | BUG(); | 86 | BUG(); |
87 | } | 87 | } |
88 | if (fault & VM_FAULT_MAJOR) | 88 | if (*flt & VM_FAULT_MAJOR) |
89 | current->maj_flt++; | 89 | current->maj_flt++; |
90 | else | 90 | else |
91 | current->min_flt++; | 91 | current->min_flt++; |
@@ -210,15 +210,15 @@ int spufs_handle_class1(struct spu_context *ctx) | |||
210 | * In case of unhandled error report the problem to user space. | 210 | * In case of unhandled error report the problem to user space. |
211 | */ | 211 | */ |
212 | if (!ret) { | 212 | if (!ret) { |
213 | if (flt == VM_FAULT_MINOR) | 213 | if (flt & VM_FAULT_MAJOR) |
214 | ctx->stats.min_flt++; | ||
215 | else | ||
216 | ctx->stats.maj_flt++; | 214 | ctx->stats.maj_flt++; |
215 | else | ||
216 | ctx->stats.min_flt++; | ||
217 | if (ctx->state == SPU_STATE_RUNNABLE) { | 217 | if (ctx->state == SPU_STATE_RUNNABLE) { |
218 | if (flt == VM_FAULT_MINOR) | 218 | if (flt & VM_FAULT_MAJOR) |
219 | ctx->spu->stats.min_flt++; | ||
220 | else | ||
221 | ctx->spu->stats.maj_flt++; | 219 | ctx->spu->stats.maj_flt++; |
220 | else | ||
221 | ctx->spu->stats.min_flt++; | ||
222 | } | 222 | } |
223 | 223 | ||
224 | if (ctx->spu) | 224 | if (ctx->spu) |