From patchwork Tue Nov 8 17:54:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ma=C3=ADra_Canal?= X-Patchwork-Id: 13036642 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A1486C4332F for ; Tue, 8 Nov 2022 17:54:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3F81E10E4F0; Tue, 8 Nov 2022 17:54:48 +0000 (UTC) Received: from fanzine2.igalia.com (fanzine.igalia.com [178.60.130.6]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1750A10E4E8 for ; Tue, 8 Nov 2022 17:54:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=E0ow7fSJ7D0UMyu9yMEF24k74WVHurVL449+cJnQonE=; b=aO2Bbm8QHSMvftnCfQ3ZSDuKZ7 V+GT0Mh1RzC+IRrczNAxWe75ePZKOLPuXWX0GO0CXP946IHBEHzgAwXFL0fILj+BdE7ajjaX1R5Rn d8Tpvt2EzqViU7nQhMz92j1ggK2y5hImls/qir3jgiATfMhd/DoN7C7RBKHyfDVsnghonkt4YBdsC r61UvqoX2DyYuiwpMKFKaNEcjWtSEV5a3pg0f1rgTqqkeswQ8xuqPgDefd/vAyat5O4IjeFtLWsGh Bda/LVrj2B+i2EseVO1LUhujlYgo1VE0fiGm/Lkj61kZ1/eG1ZAKd0kKO577e4VUbrsmaqYMfzjPw TyzVt3fQ==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1osSo1-00EVxA-4S; Tue, 08 Nov 2022 18:54:37 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Melissa Wen , Emma Anholt , David Airlie , Daniel Vetter Subject: [PATCH v2 1/2] drm/v3d: switch to drmm_mutex_init Date: Tue, 8 Nov 2022 14:54:24 -0300 Message-Id: <20221108175425.39819-2-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221108175425.39819-1-mcanal@igalia.com> References: <20221108175425.39819-1-mcanal@igalia.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Andr=C3=A9_Almeida?= , Daniel Vetter , =?utf-8?q?Ma=C3=ADra_Canal?= , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, "Juan A . Suarez" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" mutex_init is supposed to be balanced by a call to mutex_destroy, but this is not currently happening on the v3d driver. Considering the introduction of a DRM-managed mutex_init variant, switch to the drmm_mutex_init. Signed-off-by: Maíra Canal Reviewed-by: Daniel Vetter --- drivers/gpu/drm/v3d/v3d_gem.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c index b8980440d137..96af1cb5202a 100644 --- a/drivers/gpu/drm/v3d/v3d_gem.c +++ b/drivers/gpu/drm/v3d/v3d_gem.c @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -1075,10 +1076,18 @@ v3d_gem_init(struct drm_device *dev) spin_lock_init(&v3d->mm_lock); spin_lock_init(&v3d->job_lock); - mutex_init(&v3d->bo_lock); - mutex_init(&v3d->reset_lock); - mutex_init(&v3d->sched_lock); - mutex_init(&v3d->cache_clean_lock); + ret = drmm_mutex_init(dev, &v3d->bo_lock); + if (ret) + return ret; + ret = drmm_mutex_init(dev, &v3d->reset_lock); + if (ret) + return ret; + ret = drmm_mutex_init(dev, &v3d->sched_lock); + if (ret) + return ret; + ret = drmm_mutex_init(dev, &v3d->cache_clean_lock); + if (ret) + return ret; /* Note: We don't allocate address 0. Various bits of HW * treat 0 as special, such as the occlusion query counters From patchwork Tue Nov 8 17:54:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ma=C3=ADra_Canal?= X-Patchwork-Id: 13036643 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 85D6CC4332F for ; Tue, 8 Nov 2022 17:54:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1B6E110E4F3; Tue, 8 Nov 2022 17:54:49 +0000 (UTC) Received: from fanzine2.igalia.com (fanzine.igalia.com [178.60.130.6]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7E0BA10E4E9 for ; Tue, 8 Nov 2022 17:54:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=ukvrU4BRwqv/hi5Lb7tXJdxSLVociGC6eZ07IJrOiWk=; b=qwnYcD7/yDMEdogFwt4kmfJ7RC isnolX2gNmqTtIvI30j0dAzZ0o+jKxkr2PwN3KWbziKiPJmiuXLSHaEcbtPlUX7a1hvQlCZCFZ/VQ S9JBnxjOVY5QCpObtqQ0Nx0twHYNZJomXyotVgYqdB3MTHV4/dVlm/DomTXkv4okcQP5X39SstZIl cV+V+GIvtH+rUgAVwxu/aLNlcSR1HIMV6nIOwDAAPWjB3Mn/fUER2n2R5/tYmF5hPf//HDvuLrc/7 DDXmJnepWBKtzAJ6g+PNLpHJiWQy7Fi32ghmYjvpgYkeFq1xY3+45LwlmBAg0z3bkbmNsCP2NPEYj bVq4ydIw==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1osSo5-00EVxA-ED; Tue, 08 Nov 2022 18:54:42 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Melissa Wen , Emma Anholt , David Airlie , Daniel Vetter Subject: [PATCH v2 2/2] drm/v3d: add missing mutex_destroy Date: Tue, 8 Nov 2022 14:54:25 -0300 Message-Id: <20221108175425.39819-3-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221108175425.39819-1-mcanal@igalia.com> References: <20221108175425.39819-1-mcanal@igalia.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Andr=C3=A9_Almeida?= , Daniel Vetter , =?utf-8?q?Ma=C3=ADra_Canal?= , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, "Juan A . Suarez" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" v3d_perfmon_open_file() instantiates a mutex for a particular file instance, but it never destroys it by calling mutex_destroy() in v3d_perfmon_close_file(). Similarly, v3d_perfmon_create_ioctl() instantiates a mutex for a particular perfmon, but it never destroys it by calling mutex_destroy() in v3d_perfmon_destroy_ioctl(). So, add the missing mutex_destroy on both cases. Signed-off-by: Maíra Canal Reviewed-by: Daniel Vetter --- drivers/gpu/drm/v3d/v3d_perfmon.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/v3d/v3d_perfmon.c b/drivers/gpu/drm/v3d/v3d_perfmon.c index 48aaaa972c49..e1be7368b87d 100644 --- a/drivers/gpu/drm/v3d/v3d_perfmon.c +++ b/drivers/gpu/drm/v3d/v3d_perfmon.c @@ -17,8 +17,10 @@ void v3d_perfmon_get(struct v3d_perfmon *perfmon) void v3d_perfmon_put(struct v3d_perfmon *perfmon) { - if (perfmon && refcount_dec_and_test(&perfmon->refcnt)) + if (perfmon && refcount_dec_and_test(&perfmon->refcnt)) { + mutex_destroy(&perfmon->lock); kfree(perfmon); + } } void v3d_perfmon_start(struct v3d_dev *v3d, struct v3d_perfmon *perfmon) @@ -113,6 +115,7 @@ void v3d_perfmon_close_file(struct v3d_file_priv *v3d_priv) idr_for_each(&v3d_priv->perfmon.idr, v3d_perfmon_idr_del, NULL); idr_destroy(&v3d_priv->perfmon.idr); mutex_unlock(&v3d_priv->perfmon.lock); + mutex_destroy(&v3d_priv->perfmon.lock); } int v3d_perfmon_create_ioctl(struct drm_device *dev, void *data, @@ -154,6 +157,7 @@ int v3d_perfmon_create_ioctl(struct drm_device *dev, void *data, mutex_unlock(&v3d_priv->perfmon.lock); if (ret < 0) { + mutex_destroy(&perfmon->lock); kfree(perfmon); return ret; }