]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.xen/xen3-patch-2.6.27.25-26
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.xen / xen3-patch-2.6.27.25-26
CommitLineData
2cb7cef9
BS
1From: Greg Kroah-Hartman <gregkh@suse.de>
2Subject: Upstream 2.6.27.26 release from kernel.org
3
4Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
5
6Automatically created from "patches.kernel.org/patch-2.6.27.25-26" by xen-port-patches.py
7
8--- sle11-2009-07-31.orig/arch/x86/kernel/setup-xen.c 2009-06-29 15:38:34.000000000 +0200
9+++ sle11-2009-07-31/arch/x86/kernel/setup-xen.c 2009-07-31 15:08:11.000000000 +0200
10@@ -290,15 +290,13 @@ static inline void copy_edd(void)
11
12 #ifdef CONFIG_BLK_DEV_INITRD
13
14-#if defined(CONFIG_X86_32) && !defined(CONFIG_XEN)
15-
16 #define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT)
17 static void __init relocate_initrd(void)
18 {
19-
20+#ifndef CONFIG_XEN
21 u64 ramdisk_image = boot_params.hdr.ramdisk_image;
22 u64 ramdisk_size = boot_params.hdr.ramdisk_size;
23- u64 end_of_lowmem = max_low_pfn << PAGE_SHIFT;
24+ u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT;
25 u64 ramdisk_here;
26 unsigned long slop, clen, mapaddr;
27 char *p, *q;
28@@ -353,8 +351,14 @@ static void __init relocate_initrd(void)
29 " %08llx - %08llx\n",
30 ramdisk_image, ramdisk_image + ramdisk_size - 1,
31 ramdisk_here, ramdisk_here + ramdisk_size - 1);
32-}
33+#else
34+ printk(KERN_ERR "initrd extends beyond end of memory "
35+ "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
36+ __pa(xen_start_info->mod_start) + xen_start_info->mod_len,
37+ max_low_pfn_mapped << PAGE_SHIFT);
38+ initrd_start = 0;
39 #endif
40+}
41
42 static void __init reserve_initrd(void)
43 {
44@@ -362,7 +366,7 @@ static void __init reserve_initrd(void)
45 u64 ramdisk_image = boot_params.hdr.ramdisk_image;
46 u64 ramdisk_size = boot_params.hdr.ramdisk_size;
47 u64 ramdisk_end = ramdisk_image + ramdisk_size;
48- u64 end_of_lowmem = max_low_pfn << PAGE_SHIFT;
49+ u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT;
50
51 if (!boot_params.hdr.type_of_loader ||
52 !ramdisk_image || !ramdisk_size)
53@@ -371,7 +375,7 @@ static void __init reserve_initrd(void)
54 unsigned long ramdisk_image = __pa(xen_start_info->mod_start);
55 unsigned long ramdisk_size = xen_start_info->mod_len;
56 unsigned long ramdisk_end = ramdisk_image + ramdisk_size;
57- unsigned long end_of_lowmem = max_low_pfn << PAGE_SHIFT;
58+ unsigned long end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT;
59
60 if (!xen_start_info->mod_start || !ramdisk_size)
61 return; /* No initrd provided by bootloader */
62@@ -404,14 +408,8 @@ static void __init reserve_initrd(void)
63 return;
64 }
65
66-#if defined(CONFIG_X86_32) && !defined(CONFIG_XEN)
67 relocate_initrd();
68-#else
69- printk(KERN_ERR "initrd extends beyond end of memory "
70- "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
71- ramdisk_end, end_of_lowmem);
72- initrd_start = 0;
73-#endif
74+
75 free_early(ramdisk_image, ramdisk_end);
76 }
77 #else