Lines Matching refs:err_data

168 	struct ras_err_data err_data;  in amdgpu_reserve_page_direct()  local
187 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_reserve_page_direct()
192 err_data.err_addr = &err_rec; in amdgpu_reserve_page_direct()
193 amdgpu_umc_fill_error_record(&err_data, address, address, 0, 0); in amdgpu_reserve_page_direct()
196 amdgpu_ras_add_bad_pages(adev, err_data.err_addr, in amdgpu_reserve_page_direct()
197 err_data.err_addr_cnt, false); in amdgpu_reserve_page_direct()
201 amdgpu_ras_error_data_fini(&err_data); in amdgpu_reserve_page_direct()
660 amdgpu_ras_error_data_fini(&obj->err_data); in put_obj()
692 if (amdgpu_ras_error_data_init(&obj->err_data)) in amdgpu_ras_create_obj()
1019 static void amdgpu_ras_get_ecc_info(struct amdgpu_device *adev, struct ras_err_data *err_data) in amdgpu_ras_get_ecc_info() argument
1032 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1039 adev->umc.ras->ras_block.hw_ops->query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1043 adev->umc.ras->ecc_info_query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1047 adev->umc.ras->ecc_info_query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1053 struct ras_err_data *err_data, in amdgpu_ras_error_print_error_data() argument
1065 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1078 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1088 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1101 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1113 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1126 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1145 struct ras_err_data *err_data, in amdgpu_ras_error_generate_report() argument
1152 if (err_data->ce_count) { in amdgpu_ras_error_generate_report()
1153 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1154 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1165 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1170 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1175 if (err_data->ue_count) { in amdgpu_ras_error_generate_report()
1176 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1177 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1188 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1193 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1198 if (err_data->de_count) { in amdgpu_ras_error_generate_report()
1199 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1200 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1211 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1216 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1224 struct ras_err_data *err_data, in amdgpu_ras_virt_error_generate_report() argument
1232 new_ce = err_data->ce_count - obj->err_data.ce_count; in amdgpu_ras_virt_error_generate_report()
1233 new_ue = err_data->ue_count - obj->err_data.ue_count; in amdgpu_ras_virt_error_generate_report()
1234 new_de = err_data->de_count - obj->err_data.de_count; in amdgpu_ras_virt_error_generate_report()
1258 …d amdgpu_rasmgr_error_data_statistic_update(struct ras_manager *obj, struct ras_err_data *err_data) in amdgpu_rasmgr_error_data_statistic_update() argument
1263 if (err_data_has_source_info(err_data)) { in amdgpu_rasmgr_error_data_statistic_update()
1264 for_each_ras_error(err_node, err_data) { in amdgpu_rasmgr_error_data_statistic_update()
1266 amdgpu_ras_error_statistic_de_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1268 amdgpu_ras_error_statistic_ce_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1270 amdgpu_ras_error_statistic_ue_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1275 obj->err_data.ue_count += err_data->ue_count; in amdgpu_rasmgr_error_data_statistic_update()
1276 obj->err_data.ce_count += err_data->ce_count; in amdgpu_rasmgr_error_data_statistic_update()
1277 obj->err_data.de_count += err_data->de_count; in amdgpu_rasmgr_error_data_statistic_update()
1282 struct ras_err_data *err_data) in amdgpu_ras_mgr_virt_error_data_statistics_update() argument
1285 obj->err_data.ue_count = err_data->ue_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1286 obj->err_data.ce_count = err_data->ce_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1287 obj->err_data.de_count = err_data->de_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1330 enum aca_error_type type, struct ras_err_data *err_data, in amdgpu_aca_log_ras_error_data() argument
1339 return amdgpu_aca_get_error_data(adev, &obj->aca_handle, type, err_data, qctx); in amdgpu_aca_log_ras_error_data()
1362 struct ras_err_data *err_data, in amdgpu_ras_query_error_status_helper() argument
1377 return amdgpu_virt_req_ras_err_count(adev, blk, err_data); in amdgpu_ras_query_error_status_helper()
1380 amdgpu_ras_get_ecc_info(adev, err_data); in amdgpu_ras_query_error_status_helper()
1390 block_obj->hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_query_error_status_helper()
1401 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1405 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1409 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_DEFERRED, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1414 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1415 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1428 struct ras_err_data err_data; in amdgpu_ras_query_error_status_with_event() local
1436 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_query_error_status_with_event()
1453 &err_data, in amdgpu_ras_query_error_status_with_event()
1461 amdgpu_rasmgr_error_data_statistic_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1462 amdgpu_ras_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1468 amdgpu_ras_virt_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1469 amdgpu_ras_mgr_virt_error_data_statistics_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1472 info->ue_count = obj->err_data.ue_count; in amdgpu_ras_query_error_status_with_event()
1473 info->ce_count = obj->err_data.ce_count; in amdgpu_ras_query_error_status_with_event()
1474 info->de_count = obj->err_data.de_count; in amdgpu_ras_query_error_status_with_event()
1477 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_query_error_status_with_event()
2274 struct ras_err_data err_data; in amdgpu_ras_interrupt_umc_handler() local
2280 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_interrupt_umc_handler()
2288 ret = data->cb(obj->adev, &err_data, entry); in amdgpu_ras_interrupt_umc_handler()
2298 obj->err_data.ue_count += err_data.ue_count; in amdgpu_ras_interrupt_umc_handler()
2299 obj->err_data.ce_count += err_data.ce_count; in amdgpu_ras_interrupt_umc_handler()
2300 obj->err_data.de_count += err_data.de_count; in amdgpu_ras_interrupt_umc_handler()
2303 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_interrupt_umc_handler()
2744 struct ras_err_data *err_data) in amdgpu_ras_mca2pa_by_idx() argument
2754 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa_by_idx()
2755 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa_by_idx()
2765 ret = adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa_by_idx()
2773 struct ras_err_data *err_data) in amdgpu_ras_mca2pa() argument
2791 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa()
2792 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa()
2802 return adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa()
2837 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_array_from_rom() argument
2847 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2857 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_array_from_rom()
2861 err_data->err_addr[i].address = bps[0].address; in __amdgpu_ras_convert_rec_array_from_rom()
2862 err_data->err_addr[i].mem_channel = bps[0].mem_channel; in __amdgpu_ras_convert_rec_array_from_rom()
2863 err_data->err_addr[i].bank = bps[0].bank; in __amdgpu_ras_convert_rec_array_from_rom()
2864 err_data->err_addr[i].err_type = bps[0].err_type; in __amdgpu_ras_convert_rec_array_from_rom()
2865 err_data->err_addr[i].mcumc_id = bps[0].mcumc_id; in __amdgpu_ras_convert_rec_array_from_rom()
2868 if (amdgpu_ras_mca2pa_by_idx(adev, &bps[0], err_data)) in __amdgpu_ras_convert_rec_array_from_rom()
2881 if (amdgpu_ras_mca2pa(adev, &bps[0], err_data)) { in __amdgpu_ras_convert_rec_array_from_rom()
2883 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2891 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, adev->umc.retire_unit); in __amdgpu_ras_convert_rec_array_from_rom()
2895 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_from_rom() argument
2905 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_from_rom()
2909 err_data->err_addr[i].address = bps->address; in __amdgpu_ras_convert_rec_from_rom()
2910 err_data->err_addr[i].mem_channel = bps->mem_channel; in __amdgpu_ras_convert_rec_from_rom()
2911 err_data->err_addr[i].bank = bps->bank; in __amdgpu_ras_convert_rec_from_rom()
2912 err_data->err_addr[i].err_type = bps->err_type; in __amdgpu_ras_convert_rec_from_rom()
2913 err_data->err_addr[i].mcumc_id = bps->mcumc_id; in __amdgpu_ras_convert_rec_from_rom()
2917 if (amdgpu_ras_mca2pa_by_idx(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2927 if (amdgpu_ras_mca2pa(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2932 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, in __amdgpu_ras_convert_rec_from_rom()
2941 struct ras_err_data err_data; in amdgpu_ras_add_bad_pages() local
2952 err_data.err_addr = in amdgpu_ras_add_bad_pages()
2955 if (!err_data.err_addr) { in amdgpu_ras_add_bad_pages()
2975 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2989 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2998 kfree(err_data.err_addr); in amdgpu_ras_add_bad_pages()
3289 struct ras_err_data err_data; in amdgpu_ras_do_page_retirement() local
3299 amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_do_page_retirement()
3301 amdgpu_umc_handle_bad_pages(adev, &err_data); in amdgpu_ras_do_page_retirement()
3302 err_cnt = err_data.err_addr_cnt; in amdgpu_ras_do_page_retirement()
3304 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_do_page_retirement()
5000 int amdgpu_ras_error_data_init(struct ras_err_data *err_data) in amdgpu_ras_error_data_init() argument
5002 memset(err_data, 0, sizeof(*err_data)); in amdgpu_ras_error_data_init()
5004 INIT_LIST_HEAD(&err_data->err_node_list); in amdgpu_ras_error_data_init()
5018 void amdgpu_ras_error_data_fini(struct ras_err_data *err_data) in amdgpu_ras_error_data_fini() argument
5022 list_for_each_entry_safe(err_node, tmp, &err_data->err_node_list, node) in amdgpu_ras_error_data_fini()
5026 static struct ras_err_node *amdgpu_ras_error_find_node_by_id(struct ras_err_data *err_data, in amdgpu_ras_error_find_node_by_id() argument
5032 if (!err_data || !mcm_info) in amdgpu_ras_error_find_node_by_id()
5035 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_find_node_by_id()
5074 static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_data, in amdgpu_ras_error_get_info() argument
5079 err_node = amdgpu_ras_error_find_node_by_id(err_data, mcm_info); in amdgpu_ras_error_get_info()
5089 err_data->err_list_count++; in amdgpu_ras_error_get_info()
5090 list_add_tail(&err_node->node, &err_data->err_node_list); in amdgpu_ras_error_get_info()
5091 list_sort(NULL, &err_data->err_node_list, ras_err_info_cmp); in amdgpu_ras_error_get_info()
5096 int amdgpu_ras_error_statistic_ue_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ue_count() argument
5102 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ue_count()
5108 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ue_count()
5113 err_data->ue_count += count; in amdgpu_ras_error_statistic_ue_count()
5118 int amdgpu_ras_error_statistic_ce_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ce_count() argument
5124 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ce_count()
5130 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ce_count()
5135 err_data->ce_count += count; in amdgpu_ras_error_statistic_ce_count()
5140 int amdgpu_ras_error_statistic_de_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_de_count() argument
5146 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_de_count()
5152 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_de_count()
5157 err_data->de_count += count; in amdgpu_ras_error_statistic_de_count()