summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHawking Zhang <Hawking.Zhang@amd.com>2026-01-28 13:53:40 +0300
committerAlex Deucher <alexander.deucher@amd.com>2026-03-11 20:58:08 +0300
commit1394a4926f4bcff0dc6ac6deea5beeb2844297f0 (patch)
tree5ba1d9b451b0b6e8bbad6d8954a044b50100ac8e
parent68af620c9a370863e973fa27f94b635a90b8a045 (diff)
downloadlinux-1394a4926f4bcff0dc6ac6deea5beeb2844297f0.tar.xz
drm/amdgpu: fix shift-out-of-bounds when updating umc active mask
UMC node_inst_num can exceed 32, causing (1 << node_inst_num) to shift a 32-bit int out of bounds Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com> Reviewed-by: Likun Gao <Likun.Gao@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index 2669b0346a60..5f8f0c841666 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -793,7 +793,7 @@ static void amdgpu_discovery_read_from_harvest_table(struct amdgpu_device *adev,
struct harvest_table *harvest_info;
u16 offset;
int i;
- uint32_t umc_harvest_config = 0;
+ u64 umc_harvest_config = 0;
if (amdgpu_discovery_get_table_info(adev, &info, HARVEST_INFO))
return;
@@ -850,7 +850,7 @@ static void amdgpu_discovery_read_from_harvest_table(struct amdgpu_device *adev,
}
}
- adev->umc.active_mask = ((1 << adev->umc.node_inst_num) - 1) &
+ adev->umc.active_mask = ((1ULL << adev->umc.node_inst_num) - 1ULL) &
~umc_harvest_config;
}