Skip to content

Commit

Permalink
parisc: Show DIMM slot number which holds broken memory module
Browse files Browse the repository at this point in the history
The Page Deallocation Table (PDT) holds the physical addresses of all broken
memory addresses. With the physical address we now are able to show which DIMM
slot (e.g. 1a, 3c) actually holds the broken memory module so that users are
able to replace it.

Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
Helge Deller committed Jul 25, 2017
1 parent 25a9b76 commit c46bafc
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions arch/parisc/kernel/pdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,20 @@ void __init pdc_pdt_init(void)
}

for (i = 0; i < pdt_status.pdt_entries; i++) {
if (i < 20)
pr_warn("PDT: BAD PAGE #%d at 0x%08lx (error_type = %lu)\n",
i,
pdt_entry[i] & PAGE_MASK,
pdt_entry[i] & 1);
struct pdc_pat_mem_phys_mem_location loc;

/* get DIMM slot number */
loc.dimm_slot = 0xff;
#ifdef CONFIG_64BIT
pdc_pat_mem_get_dimm_phys_location(&loc, pdt_entry[i]);
#endif

pr_warn("PDT: BAD PAGE #%d at 0x%08lx, "
"DIMM slot %02x (error_type = %lu)\n",
i,
pdt_entry[i] & PAGE_MASK,
loc.dimm_slot,
pdt_entry[i] & 1);

/* mark memory page bad */
memblock_reserve(pdt_entry[i] & PAGE_MASK, PAGE_SIZE);
Expand Down

0 comments on commit c46bafc

Please sign in to comment.