# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 44119a4b46bd2b334815e915066e076beadbfdcb
# Parent 5dd8306e9032dd1c0e52ca392d4e3e7e331b4839
[IA64] MCA support - use xencomm to copy SAL error log
Signed-off-by: Yutaka Ezaki <yutaka.ezaki@xxxxxxxxxxxxxx>
Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx>
---
linux-2.6-xen-sparse/include/asm-ia64/sal.h | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+)
diff -r 5dd8306e9032 -r 44119a4b46bd linux-2.6-xen-sparse/include/asm-ia64/sal.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/sal.h Sun Oct 29 09:27:17
2006 -0700
+++ b/linux-2.6-xen-sparse/include/asm-ia64/sal.h Sun Oct 29 09:27:18
2006 -0700
@@ -42,6 +42,9 @@
#include <asm/pal.h>
#include <asm/system.h>
#include <asm/fpu.h>
+#ifdef CONFIG_XEN
+#include <asm/xen/xencomm.h>
+#endif
extern spinlock_t sal_lock;
@@ -686,10 +689,28 @@ ia64_sal_clear_state_info (u64 sal_info_
/* Get the processor and platform information logged by SAL with respect to
the machine
* state at the time of the MCAs, INITs, CMCs, or CPEs.
*/
+#ifdef CONFIG_XEN
+static inline u64 ia64_sal_get_state_info_size (u64 sal_info_type);
+#endif
+
static inline u64
ia64_sal_get_state_info (u64 sal_info_type, u64 *sal_info)
{
struct ia64_sal_retval isrv;
+#ifdef CONFIG_XEN
+ if (is_running_on_xen()) {
+ struct xencomm_mini xc_area[2];
+ int nbr_area = 2;
+ struct xencomm_handle *desc;
+
+ if (xencomm_create_mini(xc_area, &nbr_area, sal_info,
+ ia64_sal_get_state_info_size(sal_info_type), &desc))
+ return 0;
+
+ SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO, sal_info_type, 0,
+ desc, 0, 0, 0, 0);
+ } else
+#endif
SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO, sal_info_type, 0,
sal_info, 0, 0, 0, 0);
if (isrv.status)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|