]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/pm: Avoid overflow when sorting pp_feature list
authorAsad Kamal <asad.kamal@amd.com>
Mon, 2 Mar 2026 05:35:30 +0000 (13:35 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 4 Mar 2026 16:50:56 +0000 (11:50 -0500)
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 <asad.kamal@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c

index c471c0e2cbd12c5c3bad0185236252e88d3fe1eb..326c86b920a2f134db514c7dee70755d78ef707a 100644 (file)
@@ -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;