[PATCH 28/35] x86: Add sanitize_e820_map()

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Yinghai Lu
Date: Thursday, May 13, 2010 - 5:19 pm

for 2.6.34

So We don't need to carry e820.map with it.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
 arch/x86/include/asm/e820.h |    3 +--
 arch/x86/kernel/e820.c      |   17 +++++++++++------
 arch/x86/kernel/efi.c       |    2 +-
 arch/x86/kernel/setup.c     |    8 ++++----
 arch/x86/xen/setup.c        |    4 +---
 5 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index f59db16..25962e1 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -82,8 +82,7 @@ extern int e820_any_mapped(u64 start, u64 end, unsigned type);
 extern int e820_all_mapped(u64 start, u64 end, unsigned type);
 extern void e820_add_region(u64 start, u64 size, int type);
 extern void e820_print_map(char *who);
-extern int
-sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map);
+int sanitize_e820_map(void);
 extern u64 e820_update_range(u64 start, u64 size, unsigned old_type,
 			       unsigned new_type);
 extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type,
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 92c6021..416acee 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -225,7 +225,7 @@ void __init e820_print_map(char *who)
  *	   ______________________4_
  */
 
-int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,
+static int __init __sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,
 			     u32 *pnr_map)
 {
 	struct change_member {
@@ -384,6 +384,11 @@ int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,
 	return 0;
 }
 
+int __init sanitize_e820_map(void)
+{
+	return __sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+}
+
 static int __init __append_e820_map(struct e820entry *biosmap, int nr_map)
 {
 	while (nr_map) {
@@ -572,7 +577,7 @@ void __init update_e820(void)
 	u32 nr_map;
 
 	nr_map = e820.nr_map;
-	if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map))
+	if (__sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map))
 		return;
 	e820.nr_map = nr_map;
 	printk(KERN_INFO "modified physical RAM map:\n");
@@ -583,7 +588,7 @@ static void __init update_e820_saved(void)
 	u32 nr_map;
 
 	nr_map = e820_saved.nr_map;
-	if (sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), &nr_map))
+	if (__sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), &nr_map))
 		return;
 	e820_saved.nr_map = nr_map;
 }
@@ -678,7 +683,7 @@ void __init parse_e820_ext(struct setup_data *sdata, unsigned long pa_data)
 		sdata = early_ioremap(pa_data, map_len);
 	extmap = (struct e820entry *)(sdata->data);
 	__append_e820_map(extmap, entries);
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 	if (map_len > PAGE_SIZE)
 		early_iounmap(sdata, map_len);
 	printk(KERN_INFO "extended physical RAM map:\n");
@@ -910,7 +915,7 @@ void __init finish_e820_parsing(void)
 	if (userdef) {
 		u32 nr = e820.nr_map;
 
-		if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr) < 0)
+		if (__sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr) < 0)
 			early_panic("Invalid user supplied memory map");
 		e820.nr_map = nr;
 
@@ -1040,7 +1045,7 @@ char *__init default_machine_specific_memory_setup(void)
 	 * the next section from 1mb->appropriate_mem_k
 	 */
 	new_nr = boot_params.e820_entries;
-	sanitize_e820_map(boot_params.e820_map,
+	__sanitize_e820_map(boot_params.e820_map,
 			ARRAY_SIZE(boot_params.e820_map),
 			&new_nr);
 	boot_params.e820_entries = new_nr;
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index ebe7c09..bb31919 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -273,7 +273,7 @@ static void __init do_add_efi_memmap(void)
 		}
 		e820_add_region(start, size, e820_type);
 	}
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 }
 
 void __init efi_lmb_reserve_area(void)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index c5ec1b8..9d9890c 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -462,7 +462,7 @@ static void __init e820_reserve_setup_data(void)
 	if (!found)
 		return;
 
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 	memcpy(&e820_saved, &e820, sizeof(struct e820map));
 	printk(KERN_INFO "extended physical RAM map:\n");
 	e820_print_map("reserve setup_data");
@@ -625,7 +625,7 @@ static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
 		d->ident);
 
 	e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED);
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 
 	return 0;
 }
@@ -694,7 +694,7 @@ static void __init trim_bios_range(void)
 	 * take them out.
 	 */
 	e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1);
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 }
 
 static u64 __init get_max_mapped(void)
@@ -874,7 +874,7 @@ void __init setup_arch(char **cmdline_p)
 	if (ppro_with_ram_bug()) {
 		e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM,
 				  E820_RESERVED);
-		sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+		sanitize_e820_map();
 		printk(KERN_INFO "fixed physical RAM map:\n");
 		e820_print_map("bad_ppro");
 	}
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index be3fcf3..d2954eb 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -44,8 +44,6 @@ char * __init xen_memory_setup(void)
 
 	max_pfn = min(MAX_DOMAIN_PAGES, max_pfn);
 
-	e820.nr_map = 0;
-
 	e820_add_region(0, PFN_PHYS((u64)max_pfn), E820_RAM);
 
 	/*
@@ -66,7 +64,7 @@ char * __init xen_memory_setup(void)
 		      __pa(xen_start_info->pt_base),
 			"XEN START INFO");
 
-	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+	sanitize_e820_map();
 
 	return "Xen";
 }
-- 
1.6.4.2

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH -v16 00/35] Use lmb with x86, Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 04/35] lmb: Add lmb_find_area(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 07/35] x86, lmb: Add lmb_to_bootmem(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 11/35] lmb: Add find_memory_core_early(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 12/35] x86, lmb: Add lmb_find_area_node(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 13/35] x86, lmb: Add lmb_free_memory_size(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 14/35] x86, lmb: Add lmb_memory_size(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 18/35] x86: Use lmb to replace early_res, Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 20/35] x86: Remove not used early_res code, Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 28/35] x86: Add sanitize_e820_map(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 29/35] x86: Change e820_saved to __initdata, Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 30/35] x86: Align e820 ram range to page, Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 32/35] x86: Add get_centaur_ram_top(), Yinghai Lu, (Thu May 13, 5:19 pm)
[PATCH 35/35] x86: make e820 to be __initdata, Yinghai Lu, (Thu May 13, 5:19 pm)
Re: [PATCH 04/35] lmb: Add lmb_find_area(), Benjamin Herrenschmidt, (Thu May 13, 7:16 pm)
Re: [PATCH 08/35] x86,lmb: Add lmb_reserve_area/lmb_free_area, Benjamin Herrenschmidt, (Thu May 13, 7:26 pm)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Benjamin Herrenschmidt, (Thu May 13, 7:29 pm)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Benjamin Herrenschmidt, (Thu May 13, 7:30 pm)
Re: [PATCH 13/35] x86, lmb: Add lmb_free_memory_size(), Benjamin Herrenschmidt, (Thu May 13, 7:31 pm)
Re: [PATCH 14/35] x86, lmb: Add lmb_memory_size(), Benjamin Herrenschmidt, (Thu May 13, 7:31 pm)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Thu May 13, 7:32 pm)
Re: [PATCH 17/35] x86, lmb: Add x86 version of __lmb_find_ ..., Benjamin Herrenschmidt, (Thu May 13, 7:34 pm)
Re: [PATCH 24/35] lmb: Move __alloc_memory_core_early() to ..., Benjamin Herrenschmidt, (Thu May 13, 7:36 pm)
Re: [PATCH 04/35] lmb: Add lmb_find_area(), Yinghai, (Thu May 13, 11:25 pm)
Re: [PATCH 04/35] lmb: Add lmb_find_area(), Benjamin Herrenschmidt, (Fri May 14, 1:12 am)
Re: [PATCH 08/35] x86,lmb: Add lmb_reserve_area/lmb_free_area, Benjamin Herrenschmidt, (Fri May 14, 1:15 am)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Benjamin Herrenschmidt, (Fri May 14, 1:16 am)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Benjamin Herrenschmidt, (Fri May 14, 1:19 am)
Re: [PATCH 13/35] x86, lmb: Add lmb_free_memory_size(), Benjamin Herrenschmidt, (Fri May 14, 1:21 am)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Fri May 14, 1:30 am)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), David Miller, (Fri May 14, 1:30 am)
Re: [PATCH 17/35] x86, lmb: Add x86 version of __lmb_find_ ..., Benjamin Herrenschmidt, (Fri May 14, 1:31 am)
Re: [PATCH 04/35] lmb: Add lmb_find_area(), Yinghai Lu, (Fri May 14, 9:28 am)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Yinghai Lu, (Fri May 14, 9:44 am)
Re: [PATCH 13/35] x86, lmb: Add lmb_free_memory_size(), Benjamin Herrenschmidt, (Fri May 14, 3:20 pm)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Fri May 14, 3:30 pm)
Re: [PATCH 11/35] lmb: Add find_memory_core_early(), Benjamin Herrenschmidt, (Fri May 14, 3:34 pm)
lmb type features., Yinghai, (Fri May 14, 4:51 pm)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Sun May 16, 5:39 pm)
Re: lmb type features., Benjamin Herrenschmidt, (Sun May 16, 5:46 pm)
Re: lmb type features., Yinghai, (Sun May 16, 11:06 pm)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Mon May 17, 12:24 am)
Re: [PATCH 15/35] x86, lmb: Add lmb_reserve_area_overlap_ok(), Benjamin Herrenschmidt, (Mon May 17, 3:01 pm)