Skip to content

Commit 5c279c4

Browse files
rppttorvalds
authored andcommitted
Revert "x86/setup: don't remove E820_TYPE_RAM for pfn 0"
This reverts commit bde9cfa. Changing the first memory page type from E820_TYPE_RESERVED to E820_TYPE_RAM makes it a part of "System RAM" resource rather than a reserved resource and this in turn causes devmem_is_allowed() to treat is as area that can be accessed but it is filled with zeroes instead of the actual data as previously. The change in /dev/mem output causes lilo to fail as was reported at slakware users forum, and probably other legacy applications will experience similar problems. Link: https://www.linuxquestions.org/questions/slackware-14/slackware-current-lilo-vesa-warnings-after-recent-updates-4175689617/#post6214439 Signed-off-by: Mike Rapoport <[email protected]> Cc: [email protected] Signed-off-by: Linus Torvalds <[email protected]>
1 parent 927002e commit 5c279c4

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

arch/x86/kernel/setup.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,17 @@ static void __init trim_platform_memory_ranges(void)
660660

661661
static void __init trim_bios_range(void)
662662
{
663+
/*
664+
* A special case is the first 4Kb of memory;
665+
* This is a BIOS owned area, not kernel ram, but generally
666+
* not listed as such in the E820 table.
667+
*
668+
* This typically reserves additional memory (64KiB by default)
669+
* since some BIOSes are known to corrupt low memory. See the
670+
* Kconfig help text for X86_RESERVE_LOW.
671+
*/
672+
e820__range_update(0, PAGE_SIZE, E820_TYPE_RAM, E820_TYPE_RESERVED);
673+
663674
/*
664675
* special case: Some BIOSes report the PC BIOS
665676
* area (640Kb -> 1Mb) as RAM even though it is not.
@@ -717,15 +728,6 @@ early_param("reservelow", parse_reservelow);
717728

718729
static void __init trim_low_memory_range(void)
719730
{
720-
/*
721-
* A special case is the first 4Kb of memory;
722-
* This is a BIOS owned area, not kernel ram, but generally
723-
* not listed as such in the E820 table.
724-
*
725-
* This typically reserves additional memory (64KiB by default)
726-
* since some BIOSes are known to corrupt low memory. See the
727-
* Kconfig help text for X86_RESERVE_LOW.
728-
*/
729731
memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE));
730732
}
731733

0 commit comments

Comments
 (0)