Lines Matching refs:mem_err
243 void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err) in ghes_edac_report_mem_error() argument
296 (long long)mem_err->validation_bits); in ghes_edac_report_mem_error()
299 if (mem_err->validation_bits & CPER_MEM_VALID_ERROR_TYPE) { in ghes_edac_report_mem_error()
301 switch (mem_err->error_type) { in ghes_edac_report_mem_error()
352 mem_err->error_type); in ghes_edac_report_mem_error()
359 if (mem_err->validation_bits & CPER_MEM_VALID_PA) { in ghes_edac_report_mem_error()
360 e->page_frame_number = PHYS_PFN(mem_err->physical_addr); in ghes_edac_report_mem_error()
361 e->offset_in_page = offset_in_page(mem_err->physical_addr); in ghes_edac_report_mem_error()
365 if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK) in ghes_edac_report_mem_error()
366 e->grain = ~mem_err->physical_addr_mask + 1; in ghes_edac_report_mem_error()
370 if (mem_err->validation_bits & CPER_MEM_VALID_NODE) in ghes_edac_report_mem_error()
371 p += sprintf(p, "node:%d ", mem_err->node); in ghes_edac_report_mem_error()
372 if (mem_err->validation_bits & CPER_MEM_VALID_CARD) in ghes_edac_report_mem_error()
373 p += sprintf(p, "card:%d ", mem_err->card); in ghes_edac_report_mem_error()
374 if (mem_err->validation_bits & CPER_MEM_VALID_MODULE) in ghes_edac_report_mem_error()
375 p += sprintf(p, "module:%d ", mem_err->module); in ghes_edac_report_mem_error()
376 if (mem_err->validation_bits & CPER_MEM_VALID_RANK_NUMBER) in ghes_edac_report_mem_error()
377 p += sprintf(p, "rank:%d ", mem_err->rank); in ghes_edac_report_mem_error()
378 if (mem_err->validation_bits & CPER_MEM_VALID_BANK) in ghes_edac_report_mem_error()
379 p += sprintf(p, "bank:%d ", mem_err->bank); in ghes_edac_report_mem_error()
380 if (mem_err->validation_bits & CPER_MEM_VALID_BANK_GROUP) in ghes_edac_report_mem_error()
382 mem_err->bank >> CPER_MEM_BANK_GROUP_SHIFT); in ghes_edac_report_mem_error()
383 if (mem_err->validation_bits & CPER_MEM_VALID_BANK_ADDRESS) in ghes_edac_report_mem_error()
385 mem_err->bank & CPER_MEM_BANK_ADDRESS_MASK); in ghes_edac_report_mem_error()
386 if (mem_err->validation_bits & (CPER_MEM_VALID_ROW | CPER_MEM_VALID_ROW_EXT)) { in ghes_edac_report_mem_error()
387 u32 row = mem_err->row; in ghes_edac_report_mem_error()
389 row |= cper_get_mem_extension(mem_err->validation_bits, mem_err->extended); in ghes_edac_report_mem_error()
392 if (mem_err->validation_bits & CPER_MEM_VALID_COLUMN) in ghes_edac_report_mem_error()
393 p += sprintf(p, "col:%d ", mem_err->column); in ghes_edac_report_mem_error()
394 if (mem_err->validation_bits & CPER_MEM_VALID_BIT_POSITION) in ghes_edac_report_mem_error()
395 p += sprintf(p, "bit_pos:%d ", mem_err->bit_pos); in ghes_edac_report_mem_error()
396 if (mem_err->validation_bits & CPER_MEM_VALID_MODULE_HANDLE) { in ghes_edac_report_mem_error()
400 dmi_memdev_name(mem_err->mem_dev_handle, &bank, &device); in ghes_edac_report_mem_error()
405 mem_err->mem_dev_handle); in ghes_edac_report_mem_error()
407 dimm = find_dimm_by_handle(mci, mem_err->mem_dev_handle); in ghes_edac_report_mem_error()
413 if (mem_err->validation_bits & CPER_MEM_VALID_CHIP_ID) in ghes_edac_report_mem_error()
415 mem_err->extended >> CPER_MEM_CHIP_ID_SHIFT); in ghes_edac_report_mem_error()
426 if (mem_err->validation_bits & CPER_MEM_VALID_ERROR_STATUS) { in ghes_edac_report_mem_error()
427 u64 status = mem_err->error_status; in ghes_edac_report_mem_error()
487 if (mem_err->validation_bits & CPER_MEM_VALID_REQUESTOR_ID) in ghes_edac_report_mem_error()
489 (long long)mem_err->requestor_id); in ghes_edac_report_mem_error()
490 if (mem_err->validation_bits & CPER_MEM_VALID_RESPONDER_ID) in ghes_edac_report_mem_error()
492 (long long)mem_err->responder_id); in ghes_edac_report_mem_error()
493 if (mem_err->validation_bits & CPER_MEM_VALID_TARGET_ID) in ghes_edac_report_mem_error()
495 (long long)mem_err->responder_id); in ghes_edac_report_mem_error()