Skip to content

Commit

Permalink
x86/setup: Remove CONFIG_X86_RESERVE_LOW and reservelow= options
Browse files Browse the repository at this point in the history
The CONFIG_X86_RESERVE_LOW build time and reservelow= command line option
allowed to control the amount of memory under 1M that would be reserved at
boot to avoid using memory that can be potentially clobbered by BIOS.

Since the entire range under 1M is always reserved there is no need for
these options anymore and they can be removed.

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210601075354.5149-3-rppt@kernel.org
  • Loading branch information
Mike Rapoport authored and Borislav Petkov committed Jun 7, 2021
1 parent 0a5f38c commit 1a6a904
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 58 deletions.
5 changes: 0 additions & 5 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4775,11 +4775,6 @@
Reserves a hole at the top of the kernel virtual
address space.

reservelow= [X86]
Format: nn[K]
Set the amount of memory to reserve for BIOS at
the bottom of the address space.

reset_devices [KNL] Force drivers to reset the underlying device
during initialization.

Expand Down
29 changes: 0 additions & 29 deletions arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1693,35 +1693,6 @@ config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
Set whether the default state of memory_corruption_check is
on or off.

config X86_RESERVE_LOW
int "Amount of low memory, in kilobytes, to reserve for the BIOS"
default 64
range 4 640
help
Specify the amount of low memory to reserve for the BIOS.

The first page contains BIOS data structures that the kernel
must not use, so that page must always be reserved.

By default we reserve the first 64K of physical RAM, as a
number of BIOSes are known to corrupt that memory range
during events such as suspend/resume or monitor cable
insertion, so it must not be used by the kernel.

You can set this to 4 if you are absolutely sure that you
trust the BIOS to get all its memory reservations and usages
right. If you know your BIOS have problems beyond the
default 64K area, you can set this to 640 to avoid using the
entire low memory range.

If you have doubts about the BIOS (e.g. suspend/resume does
not work or there's kernel crashes after certain hardware
hotplug events) then you might want to enable
X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
typical corruption patterns.

Leave this to the default value of 64 if you are unsure.

config MATH_EMULATION
bool
depends on MODIFY_LDT_SYSCALL
Expand Down
24 changes: 0 additions & 24 deletions arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -695,30 +695,6 @@ static void __init e820_add_kernel_range(void)
e820__range_add(start, size, E820_TYPE_RAM);
}

static unsigned reserve_low = CONFIG_X86_RESERVE_LOW << 10;

static int __init parse_reservelow(char *p)
{
unsigned long long size;

if (!p)
return -EINVAL;

size = memparse(p, &p);

if (size < 4096)
size = 4096;

if (size > 640*1024)
size = 640*1024;

reserve_low = size;

return 0;
}

early_param("reservelow", parse_reservelow);

static void __init early_reserve_memory(void)
{
/*
Expand Down

0 comments on commit 1a6a904

Please sign in to comment.