fix spufs build after ->fault changes
authorChristoph Hellwig <[email protected]>
Thu, 19 Jul 2007 19:05:58 +0000 (12:05 -0700)
committerLinus Torvalds <[email protected]>
Thu, 19 Jul 2007 21:30:14 +0000 (14:30 -0700)
83c54070ee1a2d05c89793884bea1a03f2851ed4 broke spufs by incorrectly
updating the code, this patch gets it to compile again.

It's probably still broken due to the scheduler changes, but this
at least makes sure cell kernels can still be built.

Signed-off-by: Christoph Hellwig <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Acked-by: Geoff Levand <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Nick Piggin <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/powerpc/platforms/cell/spufs/fault.c

index 07f88de0544da286a96bb6af0b61e4946062db67..f53a07437472bc51fb2aa99a2d44255c510d9fce 100644 (file)
@@ -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)