Commit 76723fbc authored by Tao Zhou's avatar Tao Zhou Committed by Alex Deucher
Browse files

drm/amdgpu: reduce memory usage for umc_lookup_bad_pages_in_a_row



The function handles one page in one time, allocating umc.retire_unit
bad page records is enough.

Signed-off-by: default avatarTao Zhou <tao.zhou1@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4e7812e2
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;