Lines Matching refs:err_data
33 struct ras_err_data *err_data, uint64_t err_addr, in amdgpu_umc_convert_error_address() argument
39 err_data, err_addr, ch_inst, umc_inst); in amdgpu_umc_convert_error_address()
53 struct ras_err_data err_data; in amdgpu_umc_page_retirement_mca() local
56 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_umc_page_retirement_mca()
60 err_data.err_addr = in amdgpu_umc_page_retirement_mca()
63 if (!err_data.err_addr) { in amdgpu_umc_page_retirement_mca()
70 err_data.err_addr_len = adev->umc.max_ras_err_cnt_per_query; in amdgpu_umc_page_retirement_mca()
75 ret = amdgpu_umc_convert_error_address(adev, &err_data, err_addr, in amdgpu_umc_page_retirement_mca()
81 amdgpu_ras_add_bad_pages(adev, err_data.err_addr, in amdgpu_umc_page_retirement_mca()
82 err_data.err_addr_cnt, false); in amdgpu_umc_page_retirement_mca()
87 kfree(err_data.err_addr); in amdgpu_umc_page_retirement_mca()
90 amdgpu_ras_error_data_fini(&err_data); in amdgpu_umc_page_retirement_mca()
98 struct ras_err_data *err_data = (struct ras_err_data *)ras_error_status; in amdgpu_umc_handle_bad_pages() local
107 err_data->err_addr = in amdgpu_umc_handle_bad_pages()
114 if (!err_data->err_addr) in amdgpu_umc_handle_bad_pages()
118 err_data->err_addr_len = adev->umc.max_ras_err_cnt_per_query; in amdgpu_umc_handle_bad_pages()
133 err_data->err_addr = in amdgpu_umc_handle_bad_pages()
140 if (!err_data->err_addr) in amdgpu_umc_handle_bad_pages()
144 err_data->err_addr_len = in amdgpu_umc_handle_bad_pages()
163 err_data->err_addr = in amdgpu_umc_handle_bad_pages()
170 if (!err_data->err_addr) in amdgpu_umc_handle_bad_pages()
174 err_data->err_addr_len = in amdgpu_umc_handle_bad_pages()
186 err_data->err_addr_cnt = err_data->de_count = in amdgpu_umc_handle_bad_pages()
188 amdgpu_ras_eeprom_read_idx(control, err_data->err_addr, in amdgpu_umc_handle_bad_pages()
189 control->ras_num_recs_old, err_data->de_count); in amdgpu_umc_handle_bad_pages()
194 if (err_data->ue_count || err_data->de_count) { in amdgpu_umc_handle_bad_pages()
195 err_count = err_data->ue_count + err_data->de_count; in amdgpu_umc_handle_bad_pages()
197 err_data->err_addr_cnt) { in amdgpu_umc_handle_bad_pages()
198 amdgpu_ras_add_bad_pages(adev, err_data->err_addr, in amdgpu_umc_handle_bad_pages()
199 err_data->err_addr_cnt, amdgpu_ras_smu_eeprom_supported(adev)); in amdgpu_umc_handle_bad_pages()
212 kfree(err_data->err_addr); in amdgpu_umc_handle_bad_pages()
213 err_data->err_addr = NULL; in amdgpu_umc_handle_bad_pages()
223 struct ras_err_data *err_data = (struct ras_err_data *)ras_error_status; in amdgpu_umc_do_page_retirement() local
229 if ((err_data->ue_count || err_data->de_count) && in amdgpu_umc_do_page_retirement()
258 struct ras_err_data err_data; in amdgpu_umc_pasid_poison_handler() local
264 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_umc_pasid_poison_handler()
268 ret = amdgpu_umc_do_page_retirement(adev, &err_data, NULL, reset); in amdgpu_umc_pasid_poison_handler()
271 obj->err_data.ue_count += err_data.ue_count; in amdgpu_umc_pasid_poison_handler()
272 obj->err_data.ce_count += err_data.ce_count; in amdgpu_umc_pasid_poison_handler()
273 obj->err_data.de_count += err_data.de_count; in amdgpu_umc_pasid_poison_handler()
276 amdgpu_ras_error_data_fini(&err_data); in amdgpu_umc_pasid_poison_handler()
401 int amdgpu_umc_fill_error_record(struct ras_err_data *err_data, in amdgpu_umc_fill_error_record() argument
409 if (!err_data || in amdgpu_umc_fill_error_record()
410 !err_data->err_addr || in amdgpu_umc_fill_error_record()
411 (err_data->err_addr_cnt >= err_data->err_addr_len)) in amdgpu_umc_fill_error_record()
414 err_rec = &err_data->err_addr[err_data->err_addr_cnt]; in amdgpu_umc_fill_error_record()
425 err_data->err_addr_cnt++; in amdgpu_umc_fill_error_record()
532 struct ras_err_data *err_data, uint64_t pa_addr) in amdgpu_umc_pages_in_a_row() argument
537 err_data->err_addr_cnt = 0; in amdgpu_umc_pages_in_a_row()
538 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_umc_pages_in_a_row()
542 return adev->umc.ras->convert_ras_err_addr(adev, err_data, NULL, in amdgpu_umc_pages_in_a_row()
552 struct ras_err_data err_data; in amdgpu_umc_lookup_bad_pages_in_a_row() local
554 err_data.err_addr = kzalloc_objs(struct eeprom_table_record, in amdgpu_umc_lookup_bad_pages_in_a_row()
556 if (!err_data.err_addr) { in amdgpu_umc_lookup_bad_pages_in_a_row()
561 ret = amdgpu_umc_pages_in_a_row(adev, &err_data, pa_addr); in amdgpu_umc_lookup_bad_pages_in_a_row()
569 pfns[i] = err_data.err_addr[i].retired_page; in amdgpu_umc_lookup_bad_pages_in_a_row()
572 adev->umc.err_addr_cnt = err_data.err_addr_cnt; in amdgpu_umc_lookup_bad_pages_in_a_row()
575 kfree(err_data.err_addr); in amdgpu_umc_lookup_bad_pages_in_a_row()