From 9f11cf5adc1655d59a205da8c95dc0d19d73ac3e Mon Sep 17 00:00:00 2001 From: Keith Owens Date: Mon, 9 Feb 2004 22:54:01 -0800 Subject: [PATCH] [PATCH] ia64: mca.c - pass irq_safe around Patches from Ben Woodward to calculate irq_safe once and pass it around. --- arch/ia64/kernel/mca.c | 10 +++++----- arch/ia64/kernel/salinfo.c | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 4d5b8e5df3d27..4e2296737564c 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c @@ -129,7 +129,7 @@ static int cmc_polling_enabled = 1; */ static int cpe_poll_enabled = 1; -extern void salinfo_log_wakeup(int type, u8 *buffer, u64 size); +extern void salinfo_log_wakeup(int type, u8 *buffer, u64 size, int irqsafe); /* * IA64_MCA log support @@ -198,17 +198,17 @@ ia64_log_init(int sal_info_type) * Get the current MCA log from SAL and copy it into the OS log buffer. * * Inputs : info_type (SAL_INFO_TYPE_{MCA,INIT,CMC,CPE}) + * irq_safe whether you can use printk at this point * Outputs : size (total record length) * *buffer (ptr to error record) * */ static u64 -ia64_log_get(int sal_info_type, u8 **buffer) +ia64_log_get(int sal_info_type, u8 **buffer, int irq_safe) { sal_log_record_header_t *log_buffer; u64 total_len = 0; int s; - int irq_safe = sal_info_type != SAL_INFO_TYPE_MCA && sal_info_type != SAL_INFO_TYPE_INIT; IA64_LOG_LOCK(sal_info_type); @@ -249,11 +249,11 @@ ia64_mca_log_sal_error_record(int sal_info_type, int called_from_init) int irq_safe = sal_info_type != SAL_INFO_TYPE_MCA && sal_info_type != SAL_INFO_TYPE_INIT; static const char * const rec_name[] = { "MCA", "INIT", "CMC", "CPE" }; - size = ia64_log_get(sal_info_type, &buffer); + size = ia64_log_get(sal_info_type, &buffer, irq_safe); if (!size) return; - salinfo_log_wakeup(sal_info_type, buffer, size); + salinfo_log_wakeup(sal_info_type, buffer, size, irq_safe); if (irq_safe || called_from_init) printk(KERN_INFO "CPU %d: SAL log contains %s error record\n", diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c index 25fa2b649289b..f44191bc55e40 100644 --- a/arch/ia64/kernel/salinfo.c +++ b/arch/ia64/kernel/salinfo.c @@ -186,12 +186,12 @@ shift1_data_saved (struct salinfo_data *data, int shift) * changes. */ void -salinfo_log_wakeup(int type, u8 *buffer, u64 size) +salinfo_log_wakeup(int type, u8 *buffer, u64 size, int irqsafe) { struct salinfo_data *data = salinfo_data + type; struct salinfo_data_saved *data_saved; unsigned long flags = 0; - int i, irqsafe = type != SAL_INFO_TYPE_MCA && type != SAL_INFO_TYPE_INIT; + int i; int saved_size = ARRAY_SIZE(data->data_saved); BUG_ON(type >= ARRAY_SIZE(salinfo_log_name)); -- 2.53.0