[IA64] Fix failure when Xen is booted with "nomca"

Based on patch from Kazuhiro Suzuki <kaz@jp.fujitsu.com>

Signed-off-by: Alex williamson <alex.williamson@hp.com>
This commit is contained in:
awilliam@xenbuild.aw committed 2006-11-30 15:57:55 -07:00
1 parent ab7d6fd115
commit fcb3c0591c
3 files changed
+12 -9

No files matched your search

+10 -7
View File
@@ -206,8 +206,8 @@ static ia64_state_log_t ia64_state_log[IA64_MAX_LOG_TYPES];
#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);
+1 -1
View File
@@ -214,7 +214,7 @@ sal_emulator (long index, unsigned long in1, unsigned long in2,
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;
+1 -1
View File
@@ -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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.