[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Fix failure when Xen is booted with "nomca"
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |