aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/setup.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index b3469898717..4ac01d0ce62 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -399,6 +399,7 @@ static void __init reserve_setup_data(void)
struct setup_data *data;
u64 pa_data;
char buf[32];
+ int found = 0;
if (boot_params.hdr.version < 0x0209)
return;
@@ -409,9 +410,13 @@ static void __init reserve_setup_data(void)
reserve_early(pa_data, pa_data+sizeof(*data)+data->len, buf);
e820_update_range(pa_data, sizeof(*data)+data->len,
E820_RAM, E820_RESERVED_KERN);
+ found = 1;
pa_data = data->next;
early_iounmap(data, sizeof(*data));
}
+ if (!found)
+ return;
+
sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
printk(KERN_INFO "extended physical RAM map:\n");
e820_print_map("reserve setup_data");