diff options
Diffstat (limited to 'arch/ia64/kernel/mca.c')
-rw-r--r-- | arch/ia64/kernel/mca.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 607006a6a976..e51bced3b0fa 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -69,6 +69,7 @@ | |||
69 | * 2007-04-27 Russ Anderson <rja@sgi.com> | 69 | * 2007-04-27 Russ Anderson <rja@sgi.com> |
70 | * Support multiple cpus going through OS_MCA in the same event. | 70 | * Support multiple cpus going through OS_MCA in the same event. |
71 | */ | 71 | */ |
72 | #include <linux/jiffies.h> | ||
72 | #include <linux/types.h> | 73 | #include <linux/types.h> |
73 | #include <linux/init.h> | 74 | #include <linux/init.h> |
74 | #include <linux/sched.h> | 75 | #include <linux/sched.h> |
@@ -295,7 +296,8 @@ static void ia64_mlogbuf_dump_from_init(void) | |||
295 | if (mlogbuf_finished) | 296 | if (mlogbuf_finished) |
296 | return; | 297 | return; |
297 | 298 | ||
298 | if (mlogbuf_timestamp && (mlogbuf_timestamp + 30*HZ > jiffies)) { | 299 | if (mlogbuf_timestamp && |
300 | time_before(jiffies, mlogbuf_timestamp + 30 * HZ)) { | ||
299 | printk(KERN_ERR "INIT: mlogbuf_dump is interrupted by INIT " | 301 | printk(KERN_ERR "INIT: mlogbuf_dump is interrupted by INIT " |
300 | " and the system seems to be messed up.\n"); | 302 | " and the system seems to be messed up.\n"); |
301 | ia64_mlogbuf_finish(0); | 303 | ia64_mlogbuf_finish(0); |
@@ -1311,20 +1313,17 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1311 | } else { | 1313 | } else { |
1312 | /* Dump buffered message to console */ | 1314 | /* Dump buffered message to console */ |
1313 | ia64_mlogbuf_finish(1); | 1315 | ia64_mlogbuf_finish(1); |
1314 | #ifdef CONFIG_KEXEC | ||
1315 | atomic_set(&kdump_in_progress, 1); | ||
1316 | monarch_cpu = -1; | ||
1317 | #endif | ||
1318 | } | 1316 | } |
1317 | |||
1319 | if (__get_cpu_var(ia64_mca_tr_reload)) { | 1318 | if (__get_cpu_var(ia64_mca_tr_reload)) { |
1320 | mca_insert_tr(0x1); /*Reload dynamic itrs*/ | 1319 | mca_insert_tr(0x1); /*Reload dynamic itrs*/ |
1321 | mca_insert_tr(0x2); /*Reload dynamic itrs*/ | 1320 | mca_insert_tr(0x2); /*Reload dynamic itrs*/ |
1322 | } | 1321 | } |
1322 | |||
1323 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) | 1323 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) |
1324 | == NOTIFY_STOP) | 1324 | == NOTIFY_STOP) |
1325 | ia64_mca_spin(__func__); | 1325 | ia64_mca_spin(__func__); |
1326 | 1326 | ||
1327 | |||
1328 | if (atomic_dec_return(&mca_count) > 0) { | 1327 | if (atomic_dec_return(&mca_count) > 0) { |
1329 | int i; | 1328 | int i; |
1330 | 1329 | ||