mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
[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>
This commit is contained in:
1 parent
67ce0b5900
commit
e24fb235e0
1 file changed
+1
-2
@@ -39,7 +39,7 @@ END(early_xen_setup)
|
||||
Just force the stacked registers to be written in memory. */
|
||||
GLOBAL_ENTRY(xencomm_arch_hypercall_suspend)
|
||||
;;
|
||||
alloc r20=ar.pfs,0,0,2,0
|
||||
alloc r20=ar.pfs,0,0,6,0
|
||||
mov r2=__HYPERVISOR_sched_op
|
||||
;;
|
||||
/* We don't want to deal with RSE. */
|
||||
@@ -49,6 +49,5 @@ GLOBAL_ENTRY(xencomm_arch_hypercall_suspend)
|
||||
;;
|
||||
break 0x1000
|
||||
;;
|
||||
mov ar.pfs=r20
|
||||
br.ret.sptk.many b0
|
||||
END(xencomm_arch_hypercall_suspend)
|
||||