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>
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. */
;;
break 0x1000
;;
- mov ar.pfs=r20
br.ret.sptk.many b0
END(xencomm_arch_hypercall_suspend)