[RFC PATCH 1/3] x86, boot: Move setup_bios_corruption_check() later

From: H. Peter Anvin
Date: Mon Nov 11 2013 - 19:17:17 EST


From: "H. Peter Anvin" <hpa@xxxxxxxxxxxxxxx>

setup_bios_corruption_check() tries to claim any low memory regions
that we haven't already reserved. Make sure we reserve any low memory
regions that we intend to either use or know/assume a priori is bad
*before* we initialize the checker.

Stable team note: adding this to the list to consider for stable
because it generates user-visible nuisance dmesg warnings in some
configurations. However, it is not urgent and should be allowed to
percolate in Linus' tree for a bit first.

Reported-by: Olof Johansson <olof@xxxxxxxxx>
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/528168CB.7070602@xxxxxxxxxxxxxxx
Cc: <stable@xxxxxxxxxxxxxxx> v3.9+ [not urgent]
---
arch/x86/kernel/setup.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f0de629..8c01d6e 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1080,10 +1080,6 @@ void __init setup_arch(char **cmdline_p)
/* preallocate 4k for mptable mpc */
early_reserve_e820_mpc_new();

-#ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
- setup_bios_corruption_check();
-#endif
-
#ifdef CONFIG_X86_32
printk(KERN_DEBUG "initial memory mapped: [mem 0x00000000-%#010lx]\n",
(max_pfn_mapped<<PAGE_SHIFT) - 1);
@@ -1100,6 +1096,14 @@ void __init setup_arch(char **cmdline_p)

setup_real_mode();

+ /*
+ * At this point we should have reserved any low memory regions
+ * we need to reserve.
+ */
+#ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
+ setup_bios_corruption_check();
+#endif
+
memblock_set_current_limit(get_max_mapped());
dma_contiguous_reserve(0);

--
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/