Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp588421ybz; Fri, 24 Apr 2020 06:00:33 -0700 (PDT) X-Google-Smtp-Source: APiQypIjVd7sXvtCook2t+bURnfj/CMR33QqUjRduEh8eOOypz/nLHrNoBvsZwaNpX+VnF6iEy2G X-Received: by 2002:a17:906:310e:: with SMTP id 14mr7305559ejx.177.1587733232529; Fri, 24 Apr 2020 06:00:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587733232; cv=none; d=google.com; s=arc-20160816; b=aD0PKJw0k2YZJxokbCdV9jKDCkTqCk+W6LxwJ0Wf9dvEjvwvYt6fo546zIJrkO6PY9 MqA5F295UFJX5NhEGh3hnyud1wTNajgcIAA2okVlIDwchiWFi45Y7l08eGEbvSW0Fpfg 0/kOvVtmcN3n4eyQcLL5mWWwok05Yw11D6qVfPGlDmhk7o5V4nyjNwhruhAEEJZ7QYTp KEYNEce7tCF3ryL/1CDgmCGj0tZNurEqNJ0CoNKe+pqlqCkhuzzSbJoMtBF2txE4ieZK 0MXIqhfFpahnJkdoWz1+W4hmle+2GgHx7eywViIMSaFP1XN5lp2nw2hgzgH7Ynq8vnMb 149w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=hhVTCxpoUx+nS4rMO7S1seb/hkOPfeLTVWqX+95qM88=; b=ihStJ7cv6XTHZy/YugRTt+BvbcKEmYy+njGmIuakIG0I5hoiUIz8ALpuVJNTpJXLMT dI76cYEkVKt2nRTgzMg/loxeUBc5TYLiC/VBpCM3WbA150uWvp3zo492xzyAzcHtyCwv xA9n+RUSceX1Re82uWwaXz3nHgbUPibUjr9nJylfHSaZcVxisGR5zyS9+O3nVY4GelS6 4T+3KcdQ2NYobwFhA3BHVer7evwGshg+m79ripoGMdq3MPf8/tL0TFrKtA6A4oRv2yxc DHVsRU+KvMXYMWI4eBe9X6+z7F61rHaw0CDCoCftDWVdtr3WXcxU+gYYS5KhFOWj1e9c bo1w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l64si2908558ede.431.2020.04.24.06.00.09; Fri, 24 Apr 2020 06:00:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727054AbgDXM4p (ORCPT + 99 others); Fri, 24 Apr 2020 08:56:45 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:50390 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727024AbgDXM4p (ORCPT ); Fri, 24 Apr 2020 08:56:45 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jRxsm-0006eo-Rx; Fri, 24 Apr 2020 12:56:40 +0000 From: Colin King To: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Zhou , David Airlie , Daniel Vetter , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next] drm/amdgpu: fix unlocks on error return path Date: Fri, 24 Apr 2020 13:56:40 +0100 Message-Id: <20200424125640.22656-1-colin.king@canonical.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King Currently the error returns paths are unlocking lock kiq->ring_lock however it seems this should be dev->gfx.kiq.ring_lock as this is the lock that is being locked and unlocked around the ring operations. This looks like a bug, fix it by unlocking the correct lock. [ Note: untested ] Addresses-Coverity: ("Missing unlock") Fixes: 82478876eaac ("drm/amdgpu: protect ring overrun") Signed-off-by: Colin Ian King --- drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c index b120f9160f13..edaa50d850a6 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c @@ -430,7 +430,7 @@ static int gmc_v10_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, r = amdgpu_fence_emit_polling(ring, &seq, MAX_KIQ_REG_WAIT); if (r) { amdgpu_ring_undo(ring); - spin_unlock(&kiq->ring_lock); + spin_unlock(&adev->gfx.kiq.ring_lock); return -ETIME; } diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c index 0a6026308343..055ecba754ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c @@ -624,7 +624,7 @@ static int gmc_v9_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, r = amdgpu_fence_emit_polling(ring, &seq, MAX_KIQ_REG_WAIT); if (r) { amdgpu_ring_undo(ring); - spin_unlock(&kiq->ring_lock); + spin_unlock(&adev->gfx.kiq.ring_lock); return -ETIME; } -- 2.25.1