ia64/xen-unstable
changeset 13372:c6b683ba68f5
[IA64] Fix save/restore
Using the new hypercall path, scratch registers are not saved/restored.
So after returning from hypercall, r20 may contain garbage data.
This triggered General Exception.
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
Using the new hypercall path, scratch registers are not saved/restored.
So after returning from hypercall, r20 may contain garbage data.
This triggered General Exception.
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author | awilliam@xenbuild2.aw |
---|---|
date | Sun Jan 14 22:18:38 2007 -0700 (2007-01-14) |
parents | 43c5302ee92d |
children | a2b2b2a011f1 |
files | linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S Sun Jan 14 14:58:51 2007 -0700 1.2 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S Sun Jan 14 22:18:38 2007 -0700 1.3 @@ -39,7 +39,7 @@ END(early_xen_setup) 1.4 Just force the stacked registers to be written in memory. */ 1.5 GLOBAL_ENTRY(xencomm_arch_hypercall_suspend) 1.6 ;; 1.7 - alloc r20=ar.pfs,0,0,2,0 1.8 + alloc r20=ar.pfs,0,0,6,0 1.9 mov r2=__HYPERVISOR_sched_op 1.10 ;; 1.11 /* We don't want to deal with RSE. */ 1.12 @@ -49,6 +49,5 @@ GLOBAL_ENTRY(xencomm_arch_hypercall_susp 1.13 ;; 1.14 break 0x1000 1.15 ;; 1.16 - mov ar.pfs=r20 1.17 br.ret.sptk.many b0 1.18 END(xencomm_arch_hypercall_suspend)