diff --git a/[refs] b/[refs] index 543bf08e5713..d2a1f26cffbf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4fcc545a7479135332f511a54611820c9f4208a0 +refs/heads/master: d9a81b4411d53196c4535c3a1258cb03d945c718 diff --git a/trunk/arch/x86/kernel/setup.c b/trunk/arch/x86/kernel/setup.c index b3469898717e..4ac01d0ce624 100644 --- a/trunk/arch/x86/kernel/setup.c +++ b/trunk/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");