[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [IA64] Guarantee VTi guest can get correct frequency base



# 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.