ia64/xen-unstable

changeset 1088:3f8465dd852b

bitkeeper revision 1.722 (402c92c5m6bew87rlD47Gjf50LsJQw)

traps.c:
Fix flush_page_update_queue reentrancy bug.
author kaf24@scramble.cl.cam.ac.uk
date Fri Feb 13 09:03:01 2004 +0000 (2004-02-13)
parents 0960e7d04fce
children b2a4ceebb019
files xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c
line diff
     1.1 --- a/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c	Thu Feb 12 14:08:33 2004 +0000
     1.2 +++ b/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c	Fri Feb 13 09:03:01 2004 +0000
     1.3 @@ -313,12 +313,14 @@ asmlinkage void do_general_protection(st
     1.4  	if ( unlikely((error_code & 6) == 4) )
     1.5  	{
     1.6  		unsigned long ldt;
     1.7 -		flush_page_update_queue(); /* ensure LDTR is up to date */
     1.8  		__asm__ __volatile__ ( "sldt %0" : "=r" (ldt) );
     1.9 -		if ( likely(ldt == 0) )
    1.10 +		if ( ldt == 0 )
    1.11  		{
    1.12 -			queue_set_ldt((unsigned long)&default_ldt[0], 5);
    1.13 -			flush_page_update_queue();
    1.14 +			mmu_update_t u;
    1.15 +			u.ptr  = MMU_EXTENDED_COMMAND;
    1.16 +			u.ptr |= (unsigned long)&default_ldt[0];
    1.17 +			u.val  = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT);
    1.18 +			HYPERVISOR_mmu_update(&u, 1);
    1.19  			return;
    1.20  		}
    1.21  	}