[tip: x86/cleanups] x86/setup: Document that Windows reserves the first MiB

From: tip-bot2 for Borislav Petkov
Date: Tue Jun 08 2021 - 16:35:58 EST


The following commit has been merged into the x86/cleanups branch of tip:

Commit-ID: ec35d1d93bf8976f0668cb1026ea8c7d7bcad3c1
Gitweb: https://git.kernel.org/tip/ec35d1d93bf8976f0668cb1026ea8c7d7bcad3c1
Author: Borislav Petkov <bp@xxxxxxx>
AuthorDate: Tue, 08 Jun 2021 22:17:10 +02:00
Committer: Borislav Petkov <bp@xxxxxxx>
CommitterDate: Tue, 08 Jun 2021 22:26:43 +02:00

x86/setup: Document that Windows reserves the first MiB

It does so unconditionally too, on Intel and AMD machines, to work
around BIOS bugs, as confirmed by Microsoft folks (see Link for full
details).

Reflow the paragraph, while at it.

Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Link: https://lkml.kernel.org/r/MWHPR21MB159330952629D36EEDE706B3D7379@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---
arch/x86/kernel/setup.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 7638ac6..85acd22 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1060,17 +1060,18 @@ void __init setup_arch(char **cmdline_p)
#endif

/*
- * Find free memory for the real mode trampoline and place it
- * there.
- * If there is not enough free memory under 1M, on EFI-enabled
- * systems there will be additional attempt to reclaim the memory
- * for the real mode trampoline at efi_free_boot_services().
+ * Find free memory for the real mode trampoline and place it there. If
+ * there is not enough free memory under 1M, on EFI-enabled systems
+ * there will be additional attempt to reclaim the memory for the real
+ * mode trampoline at efi_free_boot_services().
*
- * Unconditionally reserve the entire first 1M of RAM because
- * BIOSes are know to corrupt low memory and several
- * hundred kilobytes are not worth complex detection what memory gets
- * clobbered. Moreover, on machines with SandyBridge graphics or in
- * setups that use crashkernel the entire 1M is reserved anyway.
+ * Unconditionally reserve the entire first 1M of RAM because BIOSes
+ * are known to corrupt low memory and several hundred kilobytes are not
+ * worth complex detection what memory gets clobbered. Windows does the
+ * same thing for very similar reasons.
+ *
+ * Moreover, on machines with SandyBridge graphics or in setups that use
+ * crashkernel the entire 1M is reserved anyway.
*/
reserve_real_mode();