lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADnq5_NiW9EmhEDCC1R=g7Q+DjjRxQGmQv6rLPk_9RZo3O=pfw@mail.gmail.com>
Date: Wed, 16 Apr 2025 19:03:28 -0400
From: Alex Deucher <alexdeucher@...il.com>
To: Wentao Liang <vulab@...as.ac.cn>
Cc: kenneth.feng@....com, alexander.deucher@....com, christian.koenig@....com, 
	Xinhui.Pan@....com, airlied@...il.com, simona@...ll.ch, 
	amd-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org, 
	linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH v2] drm/amd/pm/powerplay/smumgr/fiji_smumgr: Add error
 check in fiji_populate_smc_boot_level()

On Tue, Apr 15, 2025 at 6:23 AM Wentao Liang <vulab@...as.ac.cn> wrote:
>
> The return value of fiji_populate_smc_boot_level() is needs to be checked.
> An error handling is also needed to phm_find_boot_level() to reset the
> boot level when the function fails. A proper implementation can be found
> in tonga_populate_smc_boot_level().
>
> Fixes: dcaf3483ae46 ("drm/amd/pm/powerplay/smumgr/fiji_smumgr: Remove unused variable 'result'")
> Cc: stable@...r.kernel.org # v5.11+

I don't know that this is a fix per se so I don't think stable is appropriate.

This is probably ok, but TBH, I don't really remember how the pptables
were set up on these old chips and whether changing the current
behavior would actually fix or break anything.  I'd be more inclined
to just leave the logic as is lest something break.


> Signed-off-by: Wentao Liang <vulab@...as.ac.cn>
> ---
> v2: Fix error code.
>
>  .../drm/amd/pm/powerplay/smumgr/fiji_smumgr.c | 23 ++++++++++++++-----
>  1 file changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
> index 5e43ad2b2956..78ba22f249b2 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
> @@ -1600,19 +1600,30 @@ static int fiji_populate_smc_uvd_level(struct pp_hwmgr *hwmgr,
>  static int fiji_populate_smc_boot_level(struct pp_hwmgr *hwmgr,
>                 struct SMU73_Discrete_DpmTable *table)
>  {
> +       int result = 0;
>         struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>
>         table->GraphicsBootLevel = 0;
>         table->MemoryBootLevel = 0;
>
>         /* find boot level from dpm table */
> -       phm_find_boot_level(&(data->dpm_table.sclk_table),
> -                           data->vbios_boot_state.sclk_bootup_value,
> -                           (uint32_t *)&(table->GraphicsBootLevel));
> +       result = phm_find_boot_level(&(data->dpm_table.sclk_table),
> +                                    data->vbios_boot_state.sclk_bootup_value,
> +                                    (uint32_t *)&(table->GraphicsBootLevel));
> +       if (result != 0) {
> +               table->GraphicsBootLevel = 0;
> +               pr_err("VBIOS did not find boot engine clock value in dependency table. Using Graphics DPM level 0!\n");
> +               result = 0;
> +       }
>
> -       phm_find_boot_level(&(data->dpm_table.mclk_table),
> -                           data->vbios_boot_state.mclk_bootup_value,
> -                           (uint32_t *)&(table->MemoryBootLevel));
> +       result = phm_find_boot_level(&(data->dpm_table.mclk_table),
> +                                    data->vbios_boot_state.mclk_bootup_value,
> +                                    (uint32_t *)&(table->MemoryBootLevel));
> +       if (result != 0) {
> +               table->MemoryBootLevel = 0;
> +               pr_err("VBIOS did not find boot engine clock value in dependency table. Using Memory DPM level 0!\n");
> +               result = 0;
> +       }
>
>         table->BootVddc  = data->vbios_boot_state.vddc_bootup_value *
>                         VOLTAGE_SCALE;
> --
> 2.42.0.windows.2
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ