[Cbe-oss-dev] [PATCH] fix spufs build after ->fault changes

Andrew Morton akpm at linux-foundation.org
Fri Jul 20 04:03:29 EST 2007


On Thu, 19 Jul 2007 19:46:42 +0200 Christoph Hellwig <hch at lst.de> wrote:

> 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.

Arnd, can you please test this out?  Or I can merge it as-is
if you like.  Thanks.   (Sorry about the breakage btw - long
story).



From: Christoph Hellwig <hch at lst.de>

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 <hch at lst.de>
Cc: Arnd Bergmann <arnd at arndb.de>
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
---

 arch/powerpc/platforms/cell/spufs/fault.c |   22 ++++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff -puN arch/powerpc/platforms/cell/spufs/fault.c~fix-spufs-build-after-fault-changes arch/powerpc/platforms/cell/spufs/fault.c
--- a/arch/powerpc/platforms/cell/spufs/fault.c~fix-spufs-build-after-fault-changes
+++ a/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_conte
 	 * 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)
_




More information about the cbe-oss-dev mailing list