parisc: Check for broken memory in initrd
Helge Deller
maintainerPATCH 1/1 parisc: Check for broken memory in initrd
While scanning the PDT for reported broken memory modules, check if the initrd may have been loaded in such broken regions.
Signed-off-by Helge Deller <[email protected]>
arch/parisc/kernel/pdt.c +9 -0
@@ -15,6 +15,7 @@#include <linux/memblock.h> #include <linux/seq_file.h> #include <linux/kthread.h> +#include <linux/initrd.h> #include <asm/pdc.h> #include <asm/pdcpat.h>
@@ -216,8 +217,16 @@ void __init pdc_pdt_init(void) }for (i =0 ; i < pdt_status.pdt_entries; i++) { +unsigned long addr; +report_mem_err (pdt_entry[i]); + addr = pdt_entry[i] &PDT_ADDR_PHYS_MASK ; +if (IS_ENABLED (CONFIG_BLK_DEV_INITRD ) && + addr >= initrd_start && addr < initrd_end) +pr_crit ("CRITICAL: initrd possibly broken " +"due to bad memory!\n" ); +/* mark memory page bad */ memblock_reserve (pdt_entry[i] &PAGE_MASK ,PAGE_SIZE ); }