linux/arch/x86/xen
Stefano Stabellini 7cb31b752c xen/e820: Guard against E820_RAM not having page-aligned size or start.
Under Dell Inspiron 1525, and Intel SandyBridge SDP's the
BIOS e820 RAM is not page-aligned:

[   0.000000]  Xen: 0000000000100000 - 00000000df66d800 (usable)

We were not handling that and ended up setting up a pagetable
that included up to df66e000 with the disastrous effect that when

        memset(NODE_DATA(nodeid), 0, sizeof(pg_data_t));

tried to clear the page it would crash at the 2K mark.

Initially reported by Michael Young @
http://lists.xensource.com/archives/html/xen-devel/2011-01/msg00108.html

The fix is to page-align the size and also take into consideration
the start of the E820 (in case that is not page-aligned either). This
fixes the bootup failure on those affected machines.

This patch is a rework of the Micheal A Young initial patch and
considers the case if the start is not page-aligned.

Reported-by: Michael A Young <m.a.young@durham.ac.uk>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Michael A Young <m.a.young@durham.ac.uk>
2011-01-27 10:49:35 -05:00
..
debugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
debugfs.h xen: add debugfs support 2008-08-21 13:52:58 +02:00
enlighten.c lockdep: Move early boot local IRQ enable/disable status to init/main.c 2011-01-20 13:32:33 +01:00
grant-table.c
irq.c xen: fix non-ANSI function warning in irq.c 2011-01-20 14:52:13 -05:00
Kconfig Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
Makefile xen: move p2m handling to separate file 2011-01-11 14:31:07 -05:00
mmu.c xen: export arbitrary_virt_to_machine 2011-01-14 16:11:12 -08:00
mmu.h xen: make install_p2mtop_page() static 2010-10-22 12:57:23 -07:00
multicalls.c x86, xen: do multicall callbacks with interrupts disabled 2009-02-16 08:56:41 +01:00
multicalls.h xen: Use this_cpu_ops 2010-12-17 15:07:19 +01:00
p2m.c xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn. 2011-01-27 10:49:34 -05:00
pci-swiotlb-xen.c Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
platform-pci-unplug.c xen: unplug the emulated devices at resume time 2010-12-02 14:40:53 +00:00
setup.c xen/e820: Guard against E820_RAM not having page-aligned size or start. 2011-01-27 10:49:35 -05:00
smp.c Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
spinlock.c xen: Use this_cpu_ops 2010-12-17 15:07:19 +01:00
suspend.c xen: unplug the emulated devices at resume time 2010-12-02 14:40:53 +00:00
time.c Merge branch 'this_cpu_ops' into for-2.6.38 2010-12-17 15:16:46 +01:00
vdso.h
xen-asm_32.S percpu: remove per_cpu__ prefix. 2009-10-29 22:34:15 +09:00
xen-asm_64.S xen: use iret for return from 64b kernel to 32b usermode 2009-12-03 11:14:54 -08:00
xen-asm.h xen: make direct versions of irq_enable/disable/save/restore to common code 2009-02-04 16:59:04 -08:00
xen-asm.S x86: style cleanups for xen assemblies 2009-02-05 20:25:41 +01:00
xen-head.S x86: use _types.h headers in asm where available 2009-02-13 11:35:01 -08:00
xen-ops.h xen: unplug the emulated devices at resume time 2010-12-02 14:40:53 +00:00