diff options
author | WANG Chao <chaowang@redhat.com> | 2015-01-07 05:55:48 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-01-23 10:14:26 -0500 |
commit | 7389882c81474d635a208726edb22938645ff9ad (patch) | |
tree | 3a3acfb279ec0ba1fb07271da6e9c8f07b8032e7 /arch | |
parent | ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc (diff) |
x86, setup: Let early_memremap() handle page alignment
early_memremap() takes care of page alignment and map size, so we can
just remap the required data size and get rid of the adjustments in
the setup code.
[tglx: Massaged changelog ]
Signed-off-by: WANG Chao <chaowang@redhat.com>
Cc: Matt Fleming <matt.fleming@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Link: http://lkml.kernel.org/r/1420628150-16872-1-git-send-email-chaowang@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/setup.c | 8 |
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: |