ia64/xen-unstable

changeset 8862:d2f42c284459

Check for the entire kernel range for temporarily cleared PMD entries.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
author cl349@firebug.cl.cam.ac.uk
date Thu Feb 16 11:30:44 2006 +0000 (2006-02-16)
parents c62a5327e6a8
children fcbc33a437ec
files linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c	Thu Feb 16 11:25:36 2006 +0000
     1.2 +++ b/linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c	Thu Feb 16 11:30:44 2006 +0000
     1.3 @@ -366,12 +366,12 @@ asmlinkage void __kprobes do_page_fault(
     1.4  	 */
     1.5  	if (unlikely(address >= TASK_SIZE64)) {
     1.6  		/*
     1.7 -		 * Don't check for the module range here: its PML4
     1.8 -		 * is always initialized because it's shared with the main
     1.9 -		 * kernel text. Only vmalloc may need PML4 syncups.
    1.10 +		 * Must check for the entire kernel range here: with writable
    1.11 +		 * page tables the hypervisor may temporarily clear PMD
    1.12 +		 * entries.
    1.13  		 */
    1.14  		if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) &&
    1.15 -		      ((address >= VMALLOC_START && address < VMALLOC_END))) {
    1.16 +		    address >= PAGE_OFFSET) {
    1.17  			if (vmalloc_fault(address) < 0)
    1.18  				goto bad_area_nosemaphore;
    1.19  			return;