From nobody Sun Apr 26 10:52:55 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C873C433EF for ; Mon, 4 Jul 2022 13:47:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234277AbiGDNrJ (ORCPT ); Mon, 4 Jul 2022 09:47:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234505AbiGDNqw (ORCPT ); Mon, 4 Jul 2022 09:46:52 -0400 Received: from fanzine2.igalia.com (fanzine.igalia.com [178.60.130.6]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 686396269 for ; Mon, 4 Jul 2022 06:46:41 -0700 (PDT) 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: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: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=0phgl7EvZ+68EkWmayGxcWn81UiJWGlHWdR6sc85jRE=; b=TgoWnxxuN1DhmlGUAQzX18SvQ4 B66zPYwD1TxstxI+ZU5vHo9BJlQfiRw4fnAGb7IXPNiD35su9p6J9/ai8xSCuXG9QORMFHh1IRUzI Ld03p51UY0eAuFVdGswCohXAqpO8TwFXoPS4utONpYb6q07D10t5qUlqFLZ3ntYd1YSeJA0qle+dL uOMVjmxQNZbGHfV1OU1JhPp/Gfr/87UMjge+zhfk3MR2Ru0C3Re5pfjP1PckHy5KESIbgQmW6UIgm arJCM5qPOClJERlXoVdolYNgqdCncYwUEaE4Bi31xFR85AGiVr8lZxhY/r7i1SNTqULTxzTyEl1Ee WJr87gLw==; Received: from 200-100-103-169.dial-up.telesp.net.br ([200.100.103.169] helo=localhost.localdomain) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1o8MPK-00H2Y2-C2; Mon, 04 Jul 2022 15:46:34 +0200 From: =?UTF-8?q?Andr=C3=A9=20Almeida?= To: Alex Deucher , =?UTF-8?q?=27Christian=20K=C3=B6nig=27?= , 'Pan Xinhui' , David Airlie , Daniel Vetter , Hawking Zhang , Tao Zhou , Felix Kuehling , Jack Xiao , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kernel-dev@igalia.com, =?UTF-8?q?Andr=C3=A9=20Almeida?= Subject: [PATCH] drm/amdpgu/debugfs: Simplify some exit paths Date: Mon, 4 Jul 2022 10:45:32 -0300 Message-Id: <20220704134532.103876-1-andrealmeid@igalia.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To avoid code repetition, unify the function exit path when possible. No functional changes. Signed-off-by: Andr=C3=A9 Almeida Acked-by: Christian K=C3=B6nig --- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 107 ++++++++------------ 1 file changed, 42 insertions(+), 65 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/= amd/amdgpu/amdgpu_debugfs.c index f3ac7912c29c..f3b3c688e4e7 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -383,12 +383,8 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct fi= le *f, char __user *buf, =20 value =3D RREG32_PCIE(*pos); r =3D put_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 result +=3D 4; buf +=3D 4; @@ -396,11 +392,12 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct f= ile *f, char __user *buf, size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -441,12 +438,8 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct f= ile *f, const char __user uint32_t value; =20 r =3D get_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 WREG32_PCIE(*pos, value); =20 @@ -456,11 +449,12 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct = file *f, const char __user size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -502,12 +496,8 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct fi= le *f, char __user *buf, =20 value =3D RREG32_DIDT(*pos >> 2); r =3D put_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 result +=3D 4; buf +=3D 4; @@ -515,11 +505,12 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct f= ile *f, char __user *buf, size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -560,12 +551,8 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct f= ile *f, const char __user uint32_t value; =20 r =3D get_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 WREG32_DIDT(*pos >> 2, value); =20 @@ -575,11 +562,12 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct = file *f, const char __user size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -621,12 +609,8 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct fil= e *f, char __user *buf, =20 value =3D RREG32_SMC(*pos); r =3D put_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 result +=3D 4; buf +=3D 4; @@ -634,11 +618,12 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct fi= le *f, char __user *buf, size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -679,12 +664,8 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct fi= le *f, const char __user * uint32_t value; =20 r =3D get_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return r; - } + if (r) + goto out; =20 WREG32_SMC(*pos, value); =20 @@ -694,11 +675,12 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct f= ile *f, const char __user * size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - amdgpu_virt_disable_access_debugfs(adev); - return result; + return r; } =20 /** @@ -1090,11 +1072,8 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct fi= le *f, const char __user *bu uint32_t value; =20 r =3D get_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - return r; - } + if (r) + goto out; =20 amdgpu_gfx_off_ctrl(adev, value ? true : false); =20 @@ -1104,10 +1083,12 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct f= ile *f, const char __user *bu size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); =20 - return result; + return r; } =20 =20 @@ -1139,18 +1120,12 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct fi= le *f, char __user *buf, uint32_t value; =20 r =3D amdgpu_get_gfx_off_status(adev, &value); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - return r; - } + if (r) + goto out; =20 r =3D put_user(value, (uint32_t *)buf); - if (r) { - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); - pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); - return r; - } + if (r) + goto out; =20 result +=3D 4; buf +=3D 4; @@ -1158,10 +1133,12 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct fi= le *f, char __user *buf, size -=3D 4; } =20 + r =3D result; +out: pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); =20 - return result; + return r; } =20 static const struct file_operations amdgpu_debugfs_regs2_fops =3D { --=20 2.36.1