diff options
author | Chen, Gong <gong.chen@linux.intel.com> | 2013-10-18 17:30:13 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2013-10-23 13:10:20 -0400 |
commit | 147de14772ed897727dba7353916b02d1e0f17f4 (patch) | |
tree | 7643b3c62c1b6ad149f36d573409b6f2d6761dc7 /drivers/acpi/apei/ghes.c | |
parent | dd6dad4288cb93e79bd7abfa6c6a338c47454d1a (diff) |
ACPI, APEI, CPER: Add UEFI 2.4 support for memory error
In latest UEFI spec(by now it is 2.4) memory error definition
for CPER (UEFI 2.4 Appendix N Common Platform Error Record)
adds some new fields. These fields help people to locate
memory error to an actual DIMM location.
Original-author: Tony Luck <tony.luck@intel.com>
Signed-off-by: Chen, Gong <gong.chen@linux.intel.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'drivers/acpi/apei/ghes.c')
-rw-r--r-- | drivers/acpi/apei/ghes.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index 0db6e4ff6501..a30bc313787b 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c | |||
@@ -419,7 +419,7 @@ static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev) | |||
419 | 419 | ||
420 | if (sec_sev == GHES_SEV_CORRECTED && | 420 | if (sec_sev == GHES_SEV_CORRECTED && |
421 | (gdata->flags & CPER_SEC_ERROR_THRESHOLD_EXCEEDED) && | 421 | (gdata->flags & CPER_SEC_ERROR_THRESHOLD_EXCEEDED) && |
422 | (mem_err->validation_bits & CPER_MEM_VALID_PHYSICAL_ADDRESS)) { | 422 | (mem_err->validation_bits & CPER_MEM_VALID_PA)) { |
423 | pfn = mem_err->physical_addr >> PAGE_SHIFT; | 423 | pfn = mem_err->physical_addr >> PAGE_SHIFT; |
424 | if (pfn_valid(pfn)) | 424 | if (pfn_valid(pfn)) |
425 | memory_failure_queue(pfn, 0, MF_SOFT_OFFLINE); | 425 | memory_failure_queue(pfn, 0, MF_SOFT_OFFLINE); |
@@ -430,7 +430,7 @@ static void ghes_handle_memory_failure(struct acpi_generic_data *gdata, int sev) | |||
430 | } | 430 | } |
431 | if (sev == GHES_SEV_RECOVERABLE && | 431 | if (sev == GHES_SEV_RECOVERABLE && |
432 | sec_sev == GHES_SEV_RECOVERABLE && | 432 | sec_sev == GHES_SEV_RECOVERABLE && |
433 | mem_err->validation_bits & CPER_MEM_VALID_PHYSICAL_ADDRESS) { | 433 | mem_err->validation_bits & CPER_MEM_VALID_PA) { |
434 | pfn = mem_err->physical_addr >> PAGE_SHIFT; | 434 | pfn = mem_err->physical_addr >> PAGE_SHIFT; |
435 | memory_failure_queue(pfn, 0, 0); | 435 | memory_failure_queue(pfn, 0, 0); |
436 | } | 436 | } |