[AMD Official Use Only - AMD Internal Distribution Only] Based on private discussions, please continue to submit the code.
Best Regards, Kevin -----Original Message----- From: Kamal, Asad <[email protected]> Sent: Monday, March 2, 2026 2:34 PM To: Wang, Yang(Kevin) <[email protected]>; Lazar, Lijo <[email protected]>; [email protected] Cc: Zhang, Hawking <[email protected]>; Ma, Le <[email protected]>; Zhang, Morris <[email protected]>; Deucher, Alexander <[email protected]> Subject: RE: [PATCH] drm/amd/pm: Avoid overflow when sorting pp_feature list [AMD Official Use Only - AMD Internal Distribution Only] -1 in memset fills all bytes with 0xFF. For int16_t, that becomes 0xFFFF, which is -1 in two’s‑complement. So the < 0 check still works as intended. Regards Asad -----Original Message----- From: Wang, Yang(Kevin) <[email protected]> Sent: Monday, March 2, 2026 11:59 AM To: Lazar, Lijo <[email protected]>; Kamal, Asad <[email protected]>; [email protected] Cc: Zhang, Hawking <[email protected]>; Ma, Le <[email protected]>; Zhang, Morris <[email protected]>; Deucher, Alexander <[email protected]> Subject: RE: [PATCH] drm/amd/pm: Avoid overflow when sorting pp_feature list [AMD Official Use Only - AMD Internal Distribution Only] >> memset(sort_feature, -1, sizeof(sort_feature)); ... >> if (sort_feature[feature_index] < 0) continue; When the array type is changed from int8_t to int16_t, the code logic of this memset() may not correctly initialize all elements to '-1'. Please modify this code together to ensure that the subsequent code logic meets expectations. Best Regards, Kevin -----Original Message----- From: Lazar, Lijo <[email protected]> Sent: Monday, March 2, 2026 2:23 PM To: Kamal, Asad <[email protected]>; [email protected] Cc: Zhang, Hawking <[email protected]>; Ma, Le <[email protected]>; Zhang, Morris <[email protected]>; Deucher, Alexander <[email protected]>; Wang, Yang(Kevin) <[email protected]> Subject: Re: [PATCH] drm/amd/pm: Avoid overflow when sorting pp_feature list On 02-Mar-26 11:42 AM, Asad Kamal wrote: > pp_features sorting uses int8_t sort_feature[] to store driver feature > enum indices. On newer ASICs the enum index can exceed 127, causing > signed overflow and silently dropping entries from the output. > Switch the array to int16_t so all enum indices are preserved. > > Signed-off-by: Asad Kamal <[email protected]> Reviewed-by: Lijo Lazar <[email protected]> Thanks, Lijo > --- > drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c > b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c > index c471c0e2cbd1..326c86b920a2 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c > @@ -880,7 +880,7 @@ static const char *smu_get_feature_name(struct > smu_context *smu, > size_t smu_cmn_get_pp_feature_mask(struct smu_context *smu, > char *buf) > { > - int8_t sort_feature[MAX(SMU_FEATURE_COUNT, SMU_FEATURE_MAX)]; > + int16_t sort_feature[MAX(SMU_FEATURE_COUNT, SMU_FEATURE_MAX)]; > struct smu_feature_bits feature_mask; > uint32_t features[2]; > int i, feature_index;
