aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index ab4734e5411d..c4648adadd7d 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -431,15 +431,13 @@ static void __init parse_setup_data(void)
431 431
432 pa_data = boot_params.hdr.setup_data; 432 pa_data = boot_params.hdr.setup_data;
433 while (pa_data) { 433 while (pa_data) {
434 u32 data_len, map_len, data_type; 434 u32 data_len, data_type;
435 435
436 map_len = max(PAGE_SIZE - (pa_data & ~PAGE_MASK), 436 data = early_memremap(pa_data, sizeof(*data));
437 (u64)sizeof(struct setup_data));
438 data = early_memremap(pa_data, map_len);
439 data_len = data->len + sizeof(struct setup_data); 437 data_len = data->len + sizeof(struct setup_data);
440 data_type = data->type; 438 data_type = data->type;
441 pa_next = data->next; 439 pa_next = data->next;
442 early_iounmap(data, map_len); 440 early_iounmap(data, sizeof(*data));
443 441
444 switch (data_type) { 442 switch (data_type) {
445 case SETUP_E820_EXT: 443 case SETUP_E820_EXT: