diff options
| author | Hawking Zhang <Hawking.Zhang@amd.com> | 2026-01-28 13:53:40 +0300 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-03-11 20:58:08 +0300 |
| commit | 1394a4926f4bcff0dc6ac6deea5beeb2844297f0 (patch) | |
| tree | 5ba1d9b451b0b6e8bbad6d8954a044b50100ac8e | |
| parent | 68af620c9a370863e973fa27f94b635a90b8a045 (diff) | |
| download | linux-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.c | 4 |
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; } |
