At the same time remove the non-applicable and broken support for the
memmap= command line option.
-Also fix the overlap of the modules area with the fixmaps on x86-64.
-Index: head-2008-11-25/arch/x86/kernel/e820-xen.c
-===================================================================
---- head-2008-11-25.orig/arch/x86/kernel/e820-xen.c 2008-11-27 10:20:43.000000000 +0100
-+++ head-2008-11-25/arch/x86/kernel/e820-xen.c 2008-11-25 13:18:07.000000000 +0100
-@@ -1235,6 +1235,26 @@ static int __init parse_memopt(char *p)
+--- sle11-2009-05-14.orig/arch/x86/kernel/e820-xen.c 2009-02-17 14:01:20.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/e820-xen.c 2009-03-13 16:14:19.000000000 +0100
+@@ -1308,6 +1308,26 @@ static int __init parse_memopt(char *p)
i = e820.nr_map - 1;
current_end = e820.map[i].addr + e820.map[i].size;
if (current_end < mem_size) {
/*
* The e820 map ends before our requested size so
-@@ -1294,6 +1314,7 @@ static int __init parse_memmap_opt(char
+@@ -1367,6 +1387,7 @@ static int __init parse_memmap_opt(char
return *p == '\0' ? 0 : -EINVAL;
}
early_param("memmap", parse_memmap_opt);
void __init finish_e820_parsing(void)
{
-@@ -1308,7 +1329,6 @@ void __init finish_e820_parsing(void)
+@@ -1381,7 +1402,6 @@ void __init finish_e820_parsing(void)
e820_print_map("user");
}
}
static inline const char *e820_type_to_string(int e820_type)
{
-Index: head-2008-11-25/arch/x86/kernel/setup-xen.c
-===================================================================
---- head-2008-11-25.orig/arch/x86/kernel/setup-xen.c 2008-11-17 13:58:02.000000000 +0100
-+++ head-2008-11-25/arch/x86/kernel/setup-xen.c 2008-11-27 10:26:10.000000000 +0100
+@@ -1407,7 +1427,7 @@ void __init e820_reserve_resources(void)
+ struct resource *res;
+ u64 end;
+
+- res = alloc_bootmem_low(sizeof(struct resource) * e820.nr_map);
++ res = alloc_bootmem(sizeof(struct resource) * e820.nr_map);
+ for (i = 0; i < e820.nr_map; i++) {
+ end = e820.map[i].addr + e820.map[i].size - 1;
+ #ifndef CONFIG_RESOURCES_64BIT
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup-xen.c 2008-11-17 13:58:02.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/setup-xen.c 2009-02-16 17:05:16.000000000 +0100
@@ -128,12 +128,7 @@ static struct notifier_block xen_panic_b
unsigned long *phys_to_machine_mapping;
EXPORT_SYMBOL(phys_to_machine_mapping);
/* Raw start-of-day parameters from the hypervisor. */
start_info_t *xen_start_info;
-@@ -1055,17 +1050,17 @@ void __init setup_arch(char **cmdline_p)
+@@ -1037,17 +1032,17 @@ void __init setup_arch(char **cmdline_p)
p2m_pages = xen_start_info->nr_pages;
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
free_bootmem(
__pa(xen_start_info->mfn_list),
PFN_PHYS(PFN_UP(xen_start_info->nr_pages *
-@@ -1075,15 +1070,26 @@ void __init setup_arch(char **cmdline_p)
+@@ -1057,15 +1052,26 @@ void __init setup_arch(char **cmdline_p)
* Initialise the list of the frames that specify the list of
* frames that make up the p2m table. Used by save/restore.
*/
pfn_to_mfn_frame_list[k] =
alloc_bootmem_pages(PAGE_SIZE);
pfn_to_mfn_frame_list_list[k] =
-Index: head-2008-11-25/arch/x86/mm/init_64-xen.c
-===================================================================
---- head-2008-11-25.orig/arch/x86/mm/init_64-xen.c 2008-11-17 13:58:22.000000000 +0100
-+++ head-2008-11-25/arch/x86/mm/init_64-xen.c 2008-11-25 13:18:07.000000000 +0100
-@@ -660,6 +660,13 @@ static void __init extend_init_mapping(u
- while (va < (__START_KERNEL_map
- + (table_cur << PAGE_SHIFT)
- + tables_space)) {
-+ if (!pmd_index(va) && !pte_index(va)) {
-+ page = (unsigned long *)init_level4_pgt;
-+ addr = page[pgd_index(va)];
-+ addr_to_page(addr, page);
-+ addr = page[pud_index(va)];
-+ addr_to_page(addr, page);
-+ }
- pmd = (pmd_t *)&page[pmd_index(va)];
- if (pmd_none(*pmd)) {
- pte_page = alloc_static_page(&phys);
-Index: head-2008-11-25/drivers/xen/core/machine_reboot.c
-===================================================================
---- head-2008-11-25.orig/drivers/xen/core/machine_reboot.c 2008-11-18 18:17:30.000000000 +0100
-+++ head-2008-11-25/drivers/xen/core/machine_reboot.c 2008-11-25 13:18:07.000000000 +0100
-@@ -84,7 +84,7 @@ static void post_suspend(int suspend_can
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup_percpu-xen.c 2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/setup_percpu-xen.c 2009-03-13 16:14:41.000000000 +0100
+@@ -211,7 +211,7 @@ static void __init setup_node_to_cpumask
+ }
+
+ /* allocate the map */
+- map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t));
++ map = alloc_bootmem(nr_node_ids * sizeof(cpumask_t));
+
+ pr_debug(KERN_DEBUG "Node to cpumask map at %p for %d nodes\n",
+ map, nr_node_ids);
+--- sle11-2009-05-14.orig/drivers/xen/core/machine_kexec.c 2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/core/machine_kexec.c 2009-03-13 16:13:15.000000000 +0100
+@@ -57,7 +57,7 @@ void __init xen_machine_kexec_setup_reso
+
+ /* allocate xen_phys_cpus */
+
+- xen_phys_cpus = alloc_bootmem_low(k * sizeof(struct resource));
++ xen_phys_cpus = alloc_bootmem(k * sizeof(struct resource));
+ BUG_ON(xen_phys_cpus == NULL);
+
+ /* fill in xen_phys_cpus with per-cpu crash note information */
+--- sle11-2009-05-14.orig/drivers/xen/core/machine_reboot.c 2009-02-17 12:23:48.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/core/machine_reboot.c 2009-02-17 12:25:29.000000000 +0100
+@@ -76,7 +76,7 @@ static void post_suspend(int suspend_can
unsigned long shinfo_mfn;
extern unsigned long max_pfn;
extern unsigned long *pfn_to_mfn_frame_list_list;
if (suspend_cancelled) {
xen_start_info->store_mfn =
-Index: head-2008-11-25/include/asm-x86/mach-xen/asm/pgtable_64.h
-===================================================================
---- head-2008-11-25.orig/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-11-18 17:46:21.000000000 +0100
-+++ head-2008-11-25/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-11-25 13:18:07.000000000 +0100
-@@ -158,7 +158,7 @@ static inline void xen_set_pgd(pgd_t *pg
- #define PGDIR_MASK (~(PGDIR_SIZE - 1))
-
-
--#define MAXMEM _AC(0x00003fffffffffff, UL)
-+#define MAXMEM _AC(0x000000dfffffffff, UL)
- #define VMALLOC_START _AC(0xffffc20000000000, UL)
- #define VMALLOC_END _AC(0xffffe1ffffffffff, UL)
- #define VMEMMAP_START _AC(0xffffe20000000000, UL)