ia64/xen-unstable

changeset 6236:c63e764da785

Fix vmalloc_fault() path for x86/64 XenLinux.
There may be a deeper underlying problem w.r.t pagetable
initialisation at start of day, but this simple fix is
a good workaround until we have time to investigate
properly.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Aug 17 18:14:46 2005 +0000 (2005-08-17)
parents 7bd1a40ae2bd
children fbdbe4fc218d
files linux-2.6-xen-sparse/arch/xen/x86_64/mm/fault.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/fault.c	Wed Aug 17 16:53:30 2005 +0000
     1.2 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/fault.c	Wed Aug 17 18:14:46 2005 +0000
     1.3 @@ -250,7 +250,11 @@ static int vmalloc_fault(unsigned long a
     1.4  	   happen within a race in page table update. In the later
     1.5  	   case just flush. */
     1.6  
     1.7 -	pgd = pgd_offset(current->mm ?: &init_mm, address);
     1.8 +	/* On Xen the line below does not always work. Needs investigating! */
     1.9 +	/*pgd = pgd_offset(current->mm ?: &init_mm, address);*/
    1.10 +	pgd = (pgd_t *)per_cpu(cur_pgd, smp_processor_id());
    1.11 +	pgd += pgd_index(address);
    1.12 +
    1.13  	pgd_ref = pgd_offset_k(address);
    1.14  	if (pgd_none(*pgd_ref))
    1.15  		return -1;