diff mbox

[1/1] drm/amd/powerplay: initialize a variable before using it

Message ID 20170903120057.19735-1-nicolas.iooss_linux@m4x.org (mailing list archive)
State New, archived
Headers show

Commit Message

Nicolas Iooss Sept. 3, 2017, noon UTC
Function vega10_apply_state_adjust_rules() only initializes
stable_pstate_sclk_dpm_percentage when
data->registry_data.stable_pstate_sclk_dpm_percentage is not between 1
and 100. The variable is then used to compute stable_pstate_sclk, which
therefore uses an uninitialized value.

Fix this by initializing stable_pstate_sclk_dpm_percentage to
data->registry_data.stable_pstate_sclk_dpm_percentage.

This issue has been found while building the kernel with clang. The
compiler reported a -Wsometimes-uninitialized warning.

Fixes: f83a9991648b ("drm/amd/powerplay: add Vega10 powerplay support (v5)")
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Nicolas Iooss Nov. 4, 2017, 12:21 p.m. UTC | #1
On Sun, Sep 3, 2017 at 2:00 PM, Nicolas Iooss
<nicolas.iooss_linux@m4x.org> wrote:
>
> Function vega10_apply_state_adjust_rules() only initializes
> stable_pstate_sclk_dpm_percentage when
> data->registry_data.stable_pstate_sclk_dpm_percentage is not between 1
> and 100. The variable is then used to compute stable_pstate_sclk, which
> therefore uses an uninitialized value.
>
> Fix this by initializing stable_pstate_sclk_dpm_percentage to
> data->registry_data.stable_pstate_sclk_dpm_percentage.
>
> This issue has been found while building the kernel with clang. The
> compiler reported a -Wsometimes-uninitialized warning.
>
> Fixes: f83a9991648b ("drm/amd/powerplay: add Vega10 powerplay support (v5)")
> Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 197174e562d2..c8d28f78cd47 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -3043,6 +3043,8 @@ static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
>
>         if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
>                         PHM_PlatformCaps_StablePState)) {
> +               stable_pstate_sclk_dpm_percentage =
> +                       data->registry_data.stable_pstate_sclk_dpm_percentage;
>                 PP_ASSERT_WITH_CODE(
>                         data->registry_data.stable_pstate_sclk_dpm_percentage >= 1 &&
>                         data->registry_data.stable_pstate_sclk_dpm_percentage <= 100,
> --
> 2.14.1

Hello,
I have not received any comment on the above patch that I sent two
months ago, and the issue which is fixed by it still exists in today's
linux-next code [1]. Could you please review this patch?

Thanks,
Nicolas

[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c#n3137
Alex Deucher Nov. 6, 2017, 9:48 p.m. UTC | #2
On Sat, Nov 4, 2017 at 8:21 AM, Nicolas Iooss
<nicolas.iooss_linux@m4x.org> wrote:
> On Sun, Sep 3, 2017 at 2:00 PM, Nicolas Iooss
> <nicolas.iooss_linux@m4x.org> wrote:
>>
>> Function vega10_apply_state_adjust_rules() only initializes
>> stable_pstate_sclk_dpm_percentage when
>> data->registry_data.stable_pstate_sclk_dpm_percentage is not between 1
>> and 100. The variable is then used to compute stable_pstate_sclk, which
>> therefore uses an uninitialized value.
>>
>> Fix this by initializing stable_pstate_sclk_dpm_percentage to
>> data->registry_data.stable_pstate_sclk_dpm_percentage.
>>
>> This issue has been found while building the kernel with clang. The
>> compiler reported a -Wsometimes-uninitialized warning.
>>
>> Fixes: f83a9991648b ("drm/amd/powerplay: add Vega10 powerplay support (v5)")
>> Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
>> ---
>>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
>> index 197174e562d2..c8d28f78cd47 100644
>> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
>> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
>> @@ -3043,6 +3043,8 @@ static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
>>
>>         if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
>>                         PHM_PlatformCaps_StablePState)) {
>> +               stable_pstate_sclk_dpm_percentage =
>> +                       data->registry_data.stable_pstate_sclk_dpm_percentage;
>>                 PP_ASSERT_WITH_CODE(
>>                         data->registry_data.stable_pstate_sclk_dpm_percentage >= 1 &&
>>                         data->registry_data.stable_pstate_sclk_dpm_percentage <= 100,
>> --
>> 2.14.1
>
> Hello,
> I have not received any comment on the above patch that I sent two
> months ago, and the issue which is fixed by it still exists in today's
> linux-next code [1]. Could you please review this patch?

Reviewed and applied.  Sorry for missing this.  Feel free to ping
sooner if it looks like something slipped through the cracks.

Thanks,

Alex


>
> Thanks,
> Nicolas
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c#n3137
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index 197174e562d2..c8d28f78cd47 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -3043,6 +3043,8 @@  static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
 
 	if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
 			PHM_PlatformCaps_StablePState)) {
+		stable_pstate_sclk_dpm_percentage =
+			data->registry_data.stable_pstate_sclk_dpm_percentage;
 		PP_ASSERT_WITH_CODE(
 			data->registry_data.stable_pstate_sclk_dpm_percentage >= 1 &&
 			data->registry_data.stable_pstate_sclk_dpm_percentage <= 100,