]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.xen/xen3-patch-2.6.27.25-26
2385f24a4f18e12018a7351ab47cd842f4478882
[ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.xen / xen3-patch-2.6.27.25-26
1 From: Greg Kroah-Hartman <gregkh@suse.de>
2 Subject: Upstream 2.6.27.26 release from kernel.org
3
4 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
5
6 Automatically 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