Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp1049415imd; Thu, 1 Nov 2018 09:27:03 -0700 (PDT) X-Google-Smtp-Source: AJdET5fcXTtk+w9dR6m0nnrDe6QXMB2LFJGSyfhyy2WsvNCJ6uPb5IWoxwAY4hKDH1RRCVXS5/Kk X-Received: by 2002:a17:902:6a8b:: with SMTP id n11-v6mr8116844plk.16.1541089623374; Thu, 01 Nov 2018 09:27:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541089623; cv=none; d=google.com; s=arc-20160816; b=W7rDsz6jCLEAi9BsKan7njvpuM2JbzU9t88e5587lDuG8vlhISlvk4amsd/cvUSECo iV6Y+Tq0MBDFY5Q1R6SdOPswE747hp62TS7MmheaIzCLWMRZbzzAoI+ClSph7/uQzEB0 klp7iKb3svszlfmOoSD6VGtr9CRBkF81k19CjefqMgYssNak1d7hBjBK000kDKX0wyCu ClNwdxgDkCFCEB9P7OXY2hVm6uSkbCcBI+MiE6ufLV081qVPf9Bdd5cg51iJiklYFoV9 Jies4bCYjwHIN7mMEW33GErk5MFg4dAiXTPxCKax37HCT5sW8swJLbS5UpTffxIGhdlt avUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:user-agent:message-id :references:cc:in-reply-to:from:to:content-transfer-encoding :mime-version; bh=53MC+5+2390s9jCjt34PwVfczFRCA3I/gkA8vvXktRc=; b=fHgK/KngsVtfHxqyeoJI0le384RykASqCcIknCw5CyirbzU+zopxalBmrJ6RTc/Kkc Y4UhVXAe/WgWk+gNqyQc5uVUn5nEnYyIxzryL32kUODxSp7wcjHiGEjTvGYxAgxjc9ki 2J86kQQwxBhSBfPIP5tKtwrNrKtFH07885LAUXfTDOxW1OvHzqvvhlO+JTqoH53tQy8R HPye/ymAPDsxEnmfFo+Jpj47itYOnQHuVzClc7PtLyVbSP9Y9s+CK++xJZY92+FEVZv/ eA1p6vXP2dnHNlUIZ9EJstnyJ29BteCZlAo5yH0PmYUDBCkGanxf8rTkJ6Xqvn+Eegcw WsKg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e38-v6si9804041pgm.281.2018.11.01.09.26.47; Thu, 01 Nov 2018 09:27:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728698AbeKBBaF convert rfc822-to-8bit (ORCPT + 99 others); Thu, 1 Nov 2018 21:30:05 -0400 Received: from mail.fireflyinternet.com ([109.228.58.192]:50226 "EHLO fireflyinternet.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728239AbeKBBaF (ORCPT ); Thu, 1 Nov 2018 21:30:05 -0400 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 14317332-1500050 for multiple; Thu, 01 Nov 2018 16:26:18 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT To: Robert Foss , airlied@linux.ie, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, robdclark@gmail.com From: Chris Wilson In-Reply-To: <20181101161228.19432-1-robert.foss@collabora.com> Cc: Robert Foss References: <20181101161228.19432-1-robert.foss@collabora.com> Message-ID: <154108957570.30246.16686926988338640470@skylake-alporthouse-com> User-Agent: alot/0.6 Subject: Re: [PATCH v1] drm/msm: Move fence put to where failure occurs Date: Thu, 01 Nov 2018 16:26:15 +0000 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Robert Foss (2018-11-01 16:12:28) > If dma_fence_wait fails to wait for a supplied in-fence in > msm_ioctl_gem_submit, make sure we release that in-fence. > > Also remove this dma_fence_put() from the 'out' label. > > Signed-off-by: Robert Foss > --- > drivers/gpu/drm/msm/msm_gem_submit.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c > index a90aedd6883a..3e7704af5b24 100644 > --- a/drivers/gpu/drm/msm/msm_gem_submit.c > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c > @@ -411,7 +411,6 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, > struct msm_file_private *ctx = file->driver_priv; > struct msm_gem_submit *submit; > struct msm_gpu *gpu = priv->gpu; > - struct dma_fence *in_fence = NULL; > struct sync_file *sync_file = NULL; > struct msm_gpu_submitqueue *queue; > struct msm_ringbuffer *ring; > @@ -444,7 +443,8 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, > ring = gpu->rb[queue->prio]; > > if (args->flags & MSM_SUBMIT_FENCE_FD_IN) { > - in_fence = sync_file_get_fence(args->fence_fd); > + struct dma_fence *in_fence = sync_file_get_fence( > + args->fence_fd); > > if (!in_fence) > return -EINVAL; > @@ -455,8 +455,10 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, > */ > if (!dma_fence_match_context(in_fence, ring->fctx->context)) { > ret = dma_fence_wait(in_fence, true); > - if (ret) > + if (ret) { > + dma_fence_put(in_fence); > return ret; > + } > } Careful, we need to keep the put for the normal path. Maybe, if (args->flags & MSM_SUBMIT_FENCE_FD_IN) { struct dma_fence *in_fence; in_fence = sync_file_get_fence(args->fence_fd); // keep line breaks natural if (!in_fence) return -EINVAL; ret = 0; if (!dma_fence_match_match_context(in_fence, ring->fctx->context) ret = dma_fence_wait(in_fence, true); dma_fence_put(in_fence); if (ret) return ret; }