Lines Matching refs:mem_err

238 void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err)  in ghes_edac_report_mem_error()  argument
291 (long long)mem_err->validation_bits); in ghes_edac_report_mem_error()
294 if (mem_err->validation_bits & CPER_MEM_VALID_ERROR_TYPE) { in ghes_edac_report_mem_error()
296 switch (mem_err->error_type) { in ghes_edac_report_mem_error()
347 mem_err->error_type); in ghes_edac_report_mem_error()
354 if (mem_err->validation_bits & CPER_MEM_VALID_PA) { in ghes_edac_report_mem_error()
355 e->page_frame_number = PHYS_PFN(mem_err->physical_addr); in ghes_edac_report_mem_error()
356 e->offset_in_page = offset_in_page(mem_err->physical_addr); in ghes_edac_report_mem_error()
360 if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK) in ghes_edac_report_mem_error()
361 e->grain = ~mem_err->physical_addr_mask + 1; in ghes_edac_report_mem_error()
365 if (mem_err->validation_bits & CPER_MEM_VALID_NODE) in ghes_edac_report_mem_error()
366 p += sprintf(p, "node:%d ", mem_err->node); in ghes_edac_report_mem_error()
367 if (mem_err->validation_bits & CPER_MEM_VALID_CARD) in ghes_edac_report_mem_error()
368 p += sprintf(p, "card:%d ", mem_err->card); in ghes_edac_report_mem_error()
369 if (mem_err->validation_bits & CPER_MEM_VALID_MODULE) in ghes_edac_report_mem_error()
370 p += sprintf(p, "module:%d ", mem_err->module); in ghes_edac_report_mem_error()
371 if (mem_err->validation_bits & CPER_MEM_VALID_RANK_NUMBER) in ghes_edac_report_mem_error()
372 p += sprintf(p, "rank:%d ", mem_err->rank); in ghes_edac_report_mem_error()
373 if (mem_err->validation_bits & CPER_MEM_VALID_BANK) in ghes_edac_report_mem_error()
374 p += sprintf(p, "bank:%d ", mem_err->bank); in ghes_edac_report_mem_error()
375 if (mem_err->validation_bits & CPER_MEM_VALID_BANK_GROUP) in ghes_edac_report_mem_error()
377 mem_err->bank >> CPER_MEM_BANK_GROUP_SHIFT); in ghes_edac_report_mem_error()
378 if (mem_err->validation_bits & CPER_MEM_VALID_BANK_ADDRESS) in ghes_edac_report_mem_error()
380 mem_err->bank & CPER_MEM_BANK_ADDRESS_MASK); in ghes_edac_report_mem_error()
381 if (mem_err->validation_bits & (CPER_MEM_VALID_ROW | CPER_MEM_VALID_ROW_EXT)) { in ghes_edac_report_mem_error()
382 u32 row = mem_err->row; in ghes_edac_report_mem_error()
384 row |= cper_get_mem_extension(mem_err->validation_bits, mem_err->extended); in ghes_edac_report_mem_error()
387 if (mem_err->validation_bits & CPER_MEM_VALID_COLUMN) in ghes_edac_report_mem_error()
388 p += sprintf(p, "col:%d ", mem_err->column); in ghes_edac_report_mem_error()
389 if (mem_err->validation_bits & CPER_MEM_VALID_BIT_POSITION) in ghes_edac_report_mem_error()
390 p += sprintf(p, "bit_pos:%d ", mem_err->bit_pos); in ghes_edac_report_mem_error()
391 if (mem_err->validation_bits & CPER_MEM_VALID_MODULE_HANDLE) { in ghes_edac_report_mem_error()
395 dmi_memdev_name(mem_err->mem_dev_handle, &bank, &device); in ghes_edac_report_mem_error()
400 mem_err->mem_dev_handle); in ghes_edac_report_mem_error()
402 dimm = find_dimm_by_handle(mci, mem_err->mem_dev_handle); in ghes_edac_report_mem_error()
408 if (mem_err->validation_bits & CPER_MEM_VALID_CHIP_ID) in ghes_edac_report_mem_error()
410 mem_err->extended >> CPER_MEM_CHIP_ID_SHIFT); in ghes_edac_report_mem_error()
421 if (mem_err->validation_bits & CPER_MEM_VALID_ERROR_STATUS) { in ghes_edac_report_mem_error()
422 u64 status = mem_err->error_status; in ghes_edac_report_mem_error()
482 if (mem_err->validation_bits & CPER_MEM_VALID_REQUESTOR_ID) in ghes_edac_report_mem_error()
484 (long long)mem_err->requestor_id); in ghes_edac_report_mem_error()
485 if (mem_err->validation_bits & CPER_MEM_VALID_RESPONDER_ID) in ghes_edac_report_mem_error()
487 (long long)mem_err->responder_id); in ghes_edac_report_mem_error()
488 if (mem_err->validation_bits & CPER_MEM_VALID_TARGET_ID) in ghes_edac_report_mem_error()
490 (long long)mem_err->responder_id); in ghes_edac_report_mem_error()