diff options
author | WANG Chao <chaowang@redhat.com> | 2015-01-06 22:37:38 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-01-23 10:14:27 -0500 |
commit | d574ffa1066003569ed5cdaeabf44597564ce975 (patch) | |
tree | 5beddeab40b224022910fffa8d99d6b0a05de6a2 | |
parent | 7389882c81474d635a208726edb22938645ff9ad (diff) |
x86, e820: Clean up sanitize_e820_map() users
The argument 3 of sanitize_e820_map() will only be updated upon a
successful sanitization. Some of the callers have extra conditionals
for the same purpose. Clean them up.
default_machine_specific_memory_setup() must keep the extra
conditional because boot_params.e820_entries is an u8 and not an u32,
so the direct update would overwrite other fields in boot_params.
[ tglx: Massaged changelog ]
Signed-off-by: WANG Chao <chaowang@redhat.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Lee Chun-Yi <joeyli.kernel@gmail.com>
Cc: Xishi Qiu <qiuxishi@huawei.com>
Link: http://lkml.kernel.org/r/1420601859-18439-1-git-send-email-chaowang@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/kernel/e820.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index dd2f07ae9d0c..46201deee923 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -184,9 +184,9 @@ void __init e820_print_map(char *who) | |||
184 | * overwritten in the same location, starting at biosmap. | 184 | * overwritten in the same location, starting at biosmap. |
185 | * | 185 | * |
186 | * The integer pointed to by pnr_map must be valid on entry (the | 186 | * The integer pointed to by pnr_map must be valid on entry (the |
187 | * current number of valid entries located at biosmap) and will | 187 | * current number of valid entries located at biosmap). If the |
188 | * be updated on return, with the new number of valid entries | 188 | * sanitizing succeeds the *pnr_map will be updated with the new |
189 | * (something no more than max_nr_map.) | 189 | * number of valid entries (something no more than max_nr_map). |
190 | * | 190 | * |
191 | * The return value from sanitize_e820_map() is zero if it | 191 | * The return value from sanitize_e820_map() is zero if it |
192 | * successfully 'sanitized' the map entries passed in, and is -1 | 192 | * successfully 'sanitized' the map entries passed in, and is -1 |
@@ -561,23 +561,15 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, | |||
561 | 561 | ||
562 | void __init update_e820(void) | 562 | void __init update_e820(void) |
563 | { | 563 | { |
564 | u32 nr_map; | 564 | if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map)) |
565 | |||
566 | nr_map = e820.nr_map; | ||
567 | if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map)) | ||
568 | return; | 565 | return; |
569 | e820.nr_map = nr_map; | ||
570 | printk(KERN_INFO "e820: modified physical RAM map:\n"); | 566 | printk(KERN_INFO "e820: modified physical RAM map:\n"); |
571 | e820_print_map("modified"); | 567 | e820_print_map("modified"); |
572 | } | 568 | } |
573 | static void __init update_e820_saved(void) | 569 | static void __init update_e820_saved(void) |
574 | { | 570 | { |
575 | u32 nr_map; | 571 | sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), |
576 | 572 | &e820_saved.nr_map); | |
577 | nr_map = e820_saved.nr_map; | ||
578 | if (sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), &nr_map)) | ||
579 | return; | ||
580 | e820_saved.nr_map = nr_map; | ||
581 | } | 573 | } |
582 | #define MAX_GAP_END 0x100000000ull | 574 | #define MAX_GAP_END 0x100000000ull |
583 | /* | 575 | /* |
@@ -898,11 +890,9 @@ early_param("memmap", parse_memmap_opt); | |||
898 | void __init finish_e820_parsing(void) | 890 | void __init finish_e820_parsing(void) |
899 | { | 891 | { |
900 | if (userdef) { | 892 | if (userdef) { |
901 | u32 nr = e820.nr_map; | 893 | if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), |
902 | 894 | &e820.nr_map) < 0) | |
903 | if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr) < 0) | ||
904 | early_panic("Invalid user supplied memory map"); | 895 | early_panic("Invalid user supplied memory map"); |
905 | e820.nr_map = nr; | ||
906 | 896 | ||
907 | printk(KERN_INFO "e820: user-defined physical RAM map:\n"); | 897 | printk(KERN_INFO "e820: user-defined physical RAM map:\n"); |
908 | e820_print_map("user"); | 898 | e820_print_map("user"); |