[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:
awilliam@xenbuild2.aw committed 2007-01-14 22:18:38 -07:00
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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.