]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amdgpu: reduce memory usage for umc_lookup_bad_pages_in_a_row
authorTao Zhou <tao.zhou1@amd.com>
Fri, 18 Oct 2024 08:21:26 +0000 (16:21 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 10 Dec 2024 15:26:46 +0000 (10:26 -0500)
The function handles one page in one time, allocating umc.retire_unit
bad page records is enough.

Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c

index fe423253ac8cc90bd96c863dd70e978341430aaf..5dd011a73ace05333b51aa9171199abfda17d3da 100644 (file)
@@ -452,8 +452,7 @@ int amdgpu_umc_lookup_bad_pages_in_a_row(struct amdgpu_device *adev,
        struct ta_ras_query_address_output addr_out;
        struct ras_err_data err_data;
 
-       err_data.err_addr =
-               kcalloc(adev->umc.max_ras_err_cnt_per_query,
+       err_data.err_addr = kcalloc(adev->umc.retire_unit,
                                sizeof(struct eeprom_table_record), GFP_KERNEL);
        if (!err_data.err_addr) {
                dev_warn(adev->dev, "Failed to alloc memory in bad page lookup!\n");
@@ -468,7 +467,7 @@ int amdgpu_umc_lookup_bad_pages_in_a_row(struct amdgpu_device *adev,
        else
                goto out;
 
-       for (i = 0; i < adev->umc.max_ras_err_cnt_per_query; i++) {
+       for (i = 0; i < adev->umc.retire_unit; i++) {
                if (pos >= len)
                        goto out;