ia64/xen-unstable

changeset 16681:ecdc7b5f650b

[IA64] Fix PV break fault handler.

PV domain break fault handler calls C routine reflect_event() with psr.ic = 0.
It might cause unrecoverable tlb miss. set psr.ic=1 before calling it.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author Alex Williamson <alex.williamson@hp.com>
date Sun Dec 30 12:56:16 2007 -0700 (2007-12-30)
parents 6c0aec4604f7
children 7515dc56c124
files xen/arch/ia64/xen/ivt.S
line diff
     1.1 --- a/xen/arch/ia64/xen/ivt.S	Sun Dec 30 12:53:54 2007 -0700
     1.2 +++ b/xen/arch/ia64/xen/ivt.S	Sun Dec 30 12:56:16 2007 -0700
     1.3 @@ -714,15 +714,20 @@ 1:
     1.4  	adds r2=PT(CR_IFS)+16,r12
     1.5  	;;
     1.6  	st8 [r2]=r20
     1.7 -	;;   
     1.8 +	ssm psr.ic | PSR_DEFAULT_BITS
     1.9 +	;;
    1.10 +	srlz.i
    1.11 +	;;
    1.12  	br.call.sptk.many b0=reflect_event
    1.13  	;;
    1.14 +	rsm psr.i|psr.ic
    1.15  	adds r2=PT(R14)+16,r12
    1.16  	adds r3=PT(R8)+16,r12
    1.17  	;;
    1.18  	//r16 contains ar.bsp before cover
    1.19  	ld8 r16=[r2]
    1.20  	ld8 r8=[r3]
    1.21 +	srlz.i
    1.22  	;;
    1.23  	br.sptk.many ia64_ret_from_syscall
    1.24  	;;