diff options
author | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> | 2008-04-17 03:59:52 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2008-04-22 11:56:11 -0400 |
commit | 284e54279597e0933d785580a43be0b0194dfa00 (patch) | |
tree | 8b87688789c6ee80273f0f64499083faf9818844 /arch/ia64/kernel/mca.c | |
parent | 38477ad75188b2a7370fef7145f956e6c446928b (diff) |
[IA64] do notify DIE_MCA_MONARCH_PROCESS for each monarchs
There are 3 hooks in MCA handler, but this DIE_MCA_MONARCH_PROCESS
event does not notified other than for the first monarch.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/mca.c')
-rw-r--r-- | arch/ia64/kernel/mca.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index e51bced3b0fa..3ba091bb20c9 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -1288,13 +1288,14 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1288 | * does not work. | 1288 | * does not work. |
1289 | */ | 1289 | */ |
1290 | ia64_mca_wakeup_all(); | 1290 | ia64_mca_wakeup_all(); |
1291 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) | ||
1292 | == NOTIFY_STOP) | ||
1293 | ia64_mca_spin(__func__); | ||
1294 | } else { | 1291 | } else { |
1295 | while (cpu_isset(cpu, mca_cpu)) | 1292 | while (cpu_isset(cpu, mca_cpu)) |
1296 | cpu_relax(); /* spin until monarch wakes us */ | 1293 | cpu_relax(); /* spin until monarch wakes us */ |
1297 | } | 1294 | } |
1295 | |||
1296 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) | ||
1297 | == NOTIFY_STOP) | ||
1298 | ia64_mca_spin(__func__); | ||
1298 | 1299 | ||
1299 | /* Get the MCA error record and log it */ | 1300 | /* Get the MCA error record and log it */ |
1300 | ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA); | 1301 | ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA); |