From patchwork Thu Sep 11 23:38:24 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: powerpc/spufs: Fix gang->mutex locking in spu_forget Date: Thu, 11 Sep 2008 13:38:24 -0000 From: Andre Detsch X-Patchwork-Id: 259 Message-Id: <200809112038.24950.adetsch@br.ibm.com> To: cbe-oss-dev@ozlabs.org Cc: LukeBrowning@us.ibm.com, Jeremy Kerr gang->mutex was being hold when mmput(ctx->owner) was called. However, the same lock is taken inside destroy_spu_context, which was leading to a program hang. Signed-off-by: Andre Detsch diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c index 7ca787e..9475d1b 100644 --- a/arch/powerpc/platforms/cell/spufs/context.c +++ b/arch/powerpc/platforms/cell/spufs/context.c @@ -173,8 +173,8 @@ void spu_forget(struct spu_context *ctx) spu_deactivate(gang); mm = ctx->owner; ctx->owner = NULL; - mmput(mm); mutex_unlock(&gang->mutex); + mmput(mm); } void spu_unmap_mappings(struct spu_context *ctx)