|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Fix failure when Xen is booted wit
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID fa0f2a90059f4a10c02e56df6fa828402523a260
# Parent 9f56556f08cb161b67406ba76523dbfadb6f739c
[IA64] Fix failure when Xen is booted with "nomca"
Based on patch from Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx>
Signed-off-by: Alex williamson <alex.williamson@xxxxxx>
---
xen/arch/ia64/linux-xen/mca.c | 17 ++++++++++-------
xen/arch/ia64/xen/fw_emul.c | 2 +-
xen/include/asm-ia64/xenmca.h | 2 +-
3 files changed, 12 insertions(+), 9 deletions(-)
diff -r 9f56556f08cb -r fa0f2a90059f xen/arch/ia64/linux-xen/mca.c
--- a/xen/arch/ia64/linux-xen/mca.c Thu Nov 30 15:57:51 2006 -0700
+++ b/xen/arch/ia64/linux-xen/mca.c Thu Nov 30 15:57:55 2006 -0700
@@ -206,8 +206,8 @@ static ia64_state_log_t ia64_state_log[I
#define IA64_LOG_COUNT(it) ia64_state_log[it].isl_count
#ifdef XEN
-struct list_head sal_queue[IA64_MAX_LOG_TYPES];
-sal_log_record_header_t *sal_record = NULL;
+struct list_head *sal_queue, sal_log_queues[IA64_MAX_LOG_TYPES];
+sal_log_record_header_t *sal_record;
DEFINE_SPINLOCK(sal_queue_lock);
#endif
@@ -1606,7 +1606,7 @@ ia64_mca_cpu_init(void *cpu_data)
}
}
#ifdef XEN
- else {
+ else if (sal_queue) {
int i;
for (i = 0; i < IA64_MAX_LOG_TYPES; i++)
ia64_log_queue(i, 0);
@@ -1811,10 +1811,13 @@ ia64_mca_init(void)
ia64_log_init(SAL_INFO_TYPE_CPE);
#ifdef XEN
- INIT_LIST_HEAD(&sal_queue[SAL_INFO_TYPE_MCA]);
- INIT_LIST_HEAD(&sal_queue[SAL_INFO_TYPE_INIT]);
- INIT_LIST_HEAD(&sal_queue[SAL_INFO_TYPE_CMC]);
- INIT_LIST_HEAD(&sal_queue[SAL_INFO_TYPE_CPE]);
+ INIT_LIST_HEAD(&sal_log_queues[SAL_INFO_TYPE_MCA]);
+ INIT_LIST_HEAD(&sal_log_queues[SAL_INFO_TYPE_INIT]);
+ INIT_LIST_HEAD(&sal_log_queues[SAL_INFO_TYPE_CMC]);
+ INIT_LIST_HEAD(&sal_log_queues[SAL_INFO_TYPE_CPE]);
+
+ /* NULL sal_queue used elsewhere to determine MCA init state */
+ sal_queue = sal_log_queues;
open_softirq(CMC_DISABLE_SOFTIRQ,
(softirq_handler)ia64_mca_cmc_vector_disable);
diff -r 9f56556f08cb -r fa0f2a90059f xen/arch/ia64/xen/fw_emul.c
--- a/xen/arch/ia64/xen/fw_emul.c Thu Nov 30 15:57:51 2006 -0700
+++ b/xen/arch/ia64/xen/fw_emul.c Thu Nov 30 15:57:55 2006 -0700
@@ -214,7 +214,7 @@ sal_emulator (long index, unsigned long
struct smp_call_args_t arg;
spin_lock_irqsave(&sal_queue_lock, flags);
- if (list_empty(&sal_queue[in1])) {
+ if (!sal_queue || list_empty(&sal_queue[in1])) {
sal_log_record_header_t header;
XEN_GUEST_HANDLE(void) handle =
*(XEN_GUEST_HANDLE(void)*)&in3;
diff -r 9f56556f08cb -r fa0f2a90059f xen/include/asm-ia64/xenmca.h
--- a/xen/include/asm-ia64/xenmca.h Thu Nov 30 15:57:51 2006 -0700
+++ b/xen/include/asm-ia64/xenmca.h Thu Nov 30 15:57:55 2006 -0700
@@ -21,7 +21,7 @@ typedef struct sal_queue_entry_t {
struct list_head list;
} sal_queue_entry_t;
-extern struct list_head sal_queue[];
+extern struct list_head *sal_queue;
struct ia64_mca_tlb_info {
u64 cr_lid;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [IA64] Fix failure when Xen is booted with "nomca",
Xen patchbot-unstable <=
|
|
|
|
|