[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] xen/x86-64: kern_addr_valid() must not walk page tables mapping hypervisor space
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1271090074 -3600 # Node ID fbe371367af64674d8eefa59924890a7b783f769 # Parent 11175e60d39349f7daf5672481f25b9546f0918e xen/x86-64: kern_addr_valid() must not walk page tables mapping hypervisor space Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- arch/x86_64/mm/init-xen.c | 13 +++++++++++++ 1 files changed, 13 insertions(+) diff -r 11175e60d393 -r fbe371367af6 arch/x86_64/mm/init-xen.c --- a/arch/x86_64/mm/init-xen.c Tue Mar 30 18:28:34 2010 +0100 +++ b/arch/x86_64/mm/init-xen.c Mon Apr 12 17:34:34 2010 +0100 @@ -1149,6 +1149,19 @@ int kern_addr_valid(unsigned long addr) if (above != 0 && above != -1UL) return 0; +#ifdef CONFIG_XEN + /* + * Don't walk page tables for hypervisor addresses, but allow + * the M2P table to be accessed through e.g. /proc/kcore. + */ + if (addr >= (unsigned long)machine_to_phys_mapping && + addr < (unsigned long)(machine_to_phys_mapping + + (1UL << machine_to_phys_order))) + return 1; + if (addr >= HYPERVISOR_VIRT_START && addr < HYPERVISOR_VIRT_END) + return 0; +#endif + pgd = pgd_offset_k(addr); if (pgd_none(*pgd)) return 0; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |