Skip to content

Commit 7fd817c

Browse files
jiribohachansendc
authored andcommitted
x86/e820: Don't reserve SETUP_RNG_SEED in e820
SETUP_RNG_SEED in setup_data is supplied by kexec and should not be reserved in the e820 map. Doing so reserves 16 bytes of RAM when booting with kexec. (16 bytes because data->len is zeroed by parse_setup_data so only sizeof(setup_data) is reserved.) When kexec is used repeatedly, each boot adds two entries in the kexec-provided e820 map as the 16-byte range splits a larger range of usable memory. Eventually all of the 128 available entries get used up. The next split will result in losing usable memory as the new entries cannot be added to the e820 map. Fixes: 68b8e97 ("x86/setup: Use rng seeds from setup_data") Signed-off-by: Jiri Bohac <jbohac@suse.cz> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Cc: <stable@kernel.org> Link: https://lore.kernel.org/r/ZbmOjKnARGiaYBd5@dwarf.suse.cz
1 parent 6890cb1 commit 7fd817c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

arch/x86/kernel/e820.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,10 +1017,12 @@ void __init e820__reserve_setup_data(void)
10171017
e820__range_update(pa_data, sizeof(*data)+data->len, E820_TYPE_RAM, E820_TYPE_RESERVED_KERN);
10181018

10191019
/*
1020-
* SETUP_EFI and SETUP_IMA are supplied by kexec and do not need
1021-
* to be reserved.
1020+
* SETUP_EFI, SETUP_IMA and SETUP_RNG_SEED are supplied by
1021+
* kexec and do not need to be reserved.
10221022
*/
1023-
if (data->type != SETUP_EFI && data->type != SETUP_IMA)
1023+
if (data->type != SETUP_EFI &&
1024+
data->type != SETUP_IMA &&
1025+
data->type != SETUP_RNG_SEED)
10241026
e820__range_update_kexec(pa_data,
10251027
sizeof(*data) + data->len,
10261028
E820_TYPE_RAM, E820_TYPE_RESERVED_KERN);

0 commit comments

Comments
 (0)