ia64/xen-unstable

changeset 12669:76d379e3f1d7

[IA64] Check CPL for break 0x80001 case

This is a patch which intends for fixing ltrace problem. When I
execute a command "ltrace ps" on dom0, it makes dom0 hung. It comes
from "break 0x80001" is shared by ltrace(CPL=3) and hpsim(CPL=2).
To avoid this problem, I just add check CPL in ia64_break_fault code.

Signed-off-by: Atsushi SAKAI <sakaia@jp.fujitsu.com>
author awilliam@xenbuild.aw
date Fri Dec 01 11:12:00 2006 -0700 (2006-12-01)
parents 49ab12a04d16
children 0705db48d23c
files xen/arch/ia64/xen/faults.c
line diff
     1.1 --- a/xen/arch/ia64/xen/faults.c	Thu Nov 30 15:58:21 2006 -0700
     1.2 +++ b/xen/arch/ia64/xen/faults.c	Fri Dec 01 11:12:00 2006 -0700
     1.3 @@ -524,7 +524,9 @@ ia64_handle_break(unsigned long ifa, str
     1.4  	struct vcpu *v = current;
     1.5  	IA64FAULT vector;
     1.6  
     1.7 -	if (iim == 0x80001 || iim == 0x80002) { //FIXME: don't hardcode constant
     1.8 +	/* FIXME: don't hardcode constant */
     1.9 +	if ((iim == 0x80001 || iim == 0x80002)
    1.10 +	    && ia64_get_cpl(regs->cr_ipsr) == 2) {
    1.11  		do_ssc(vcpu_get_gr(current, 36), regs);
    1.12  	}
    1.13  #ifdef CRASH_DEBUG