# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 294e032f14afb76247a1e7ae3ac6c372cf8585a9
# Parent c4ac21dc3f16d7be84d480f8795e1902da99c230
[IA64] Guarantee VTi guest can get correct frequency base
Because some platforms don't implement pal_freq_base call in PAL,
in this case, call host SAL sal_freq_base instead to get correct
freqency base value.
Signed-off-by: Zhang Xiantao <xiantao.zhang@xxxxxxxxx>
Signed-off-by: Yu Ke <ke.yu@xxxxxxxxx>
diff -r c4ac21dc3f16 -r 294e032f14af xen/arch/ia64/vmx/pal_emul.c
--- a/xen/arch/ia64/vmx/pal_emul.c Mon Mar 6 17:21:35 2006
+++ b/xen/arch/ia64/vmx/pal_emul.c Wed Mar 8 00:08:20 2006
@@ -20,6 +20,7 @@
#include <asm/vmx_vcpu.h>
#include <asm/pal.h>
+#include <asm/sal.h>
static void
get_pal_parameters (VCPU *vcpu, UINT64 *gr29,
@@ -182,8 +183,16 @@
static struct ia64_pal_retval
pal_freq_base(VCPU *vcpu){
struct ia64_pal_retval result;
+ struct ia64_sal_retval isrv;
PAL_CALL(result,PAL_FREQ_BASE, 0, 0, 0);
+ if(result.v0 == 0){ //PAL_FREQ_BASE may not be implemented in some
platforms, call SAL instead.
+ SAL_CALL(isrv, SAL_FREQ_BASE,
+ SAL_FREQ_BASE_PLATFORM, 0, 0, 0, 0, 0, 0);
+ result.status = isrv.status;
+ result.v0 = isrv.v0;
+ result.v1 = result.v2 =0;
+ }
return result;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|