|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] linux/x86_64: correctly handle mem= reducing memory
When mem= is being used to specify a value below the amount a domain
got passed from Xen, init_memory_mapping() got called with the higher
original value (end_pfn_map), triggering the BUG()s in maddr.h
checking PFNs against end_pfn.
Written and tested on 2.6.16.60 and made apply to the 2.6.18 tree
without further testing.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
--- sle10sp3-2009-11-27.orig/arch/x86_64/kernel/e820-xen.c 2009-10-01
14:16:23.000000000 +0200
+++ sle10sp3-2009-11-27/arch/x86_64/kernel/e820-xen.c 2009-12-01
11:31:11.000000000 +0100
@@ -30,12 +30,14 @@
unsigned long end_pfn;
EXPORT_SYMBOL(end_pfn);
+#ifndef CONFIG_XEN
/*
* end_pfn only includes RAM, while end_pfn_map includes all e820 entries.
* The direct mapping extends to end_pfn_map, so that we can directly access
* apertures, ACPI and other tables without having to play with fixmaps.
*/
unsigned long end_pfn_map;
+#endif
/*
* Last pfn which the user wants to use.
--- sle10sp3-2009-11-27.orig/include/asm-x86_64/proto.h 2009-08-10
10:13:16.000000000 +0200
+++ sle10sp3-2009-11-27/include/asm-x86_64/proto.h 2009-12-01
11:30:58.000000000 +0100
@@ -75,7 +75,11 @@ extern void load_gs_index(unsigned gs);
extern void stop_timer_interrupt(void);
extern void main_timer_handler(struct pt_regs *regs);
+#ifndef CONFIG_XEN
extern unsigned long end_pfn_map;
+#else
+#define end_pfn_map end_pfn
+#endif
extern void show_trace(struct task_struct *, struct pt_regs *, unsigned long *
rsp);
extern void show_registers(struct pt_regs *regs);
xenlinux-x86_64-mem-reduction.patch
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH] linux/x86_64: correctly handle mem= reducing memory amount,
Jan Beulich <=
|
|
|
|
|