Message ID | 20230201095933.129482-1-ganeshgr@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 2115732e548304e52ca1bbdb714f45f4a2461653 |
Headers | show |
Series | [v3] powerpc/mce: log the error for all unrecoverable errors | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
On Wed, 1 Feb 2023 15:29:33 +0530, Ganesh Goudar wrote: > For all unrecoverable errors we are missing to log the > error, Since machine_check_log_err() is not getting called > for unrecoverable errors. machine_check_log_err() is called > from deferred handler, To run deferred handlers we have to do > irq work raise from the exception handler. > > For recoverable errors exception vector code takes care of > running deferred handlers. > > [...] Applied to powerpc/next. [1/1] powerpc/mce: log the error for all unrecoverable errors https://git.kernel.org/powerpc/c/2115732e548304e52ca1bbdb714f45f4a2461653 cheers
diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c index 6c5d30fba766..219f28637a3e 100644 --- a/arch/powerpc/kernel/mce.c +++ b/arch/powerpc/kernel/mce.c @@ -131,6 +131,13 @@ void save_mce_event(struct pt_regs *regs, long handled, if (mce->error_type == MCE_ERROR_TYPE_UE) mce->u.ue_error.ignore_event = mce_err->ignore_event; + /* + * Raise irq work, So that we don't miss to log the error for + * unrecoverable errors. + */ + if (mce->disposition == MCE_DISPOSITION_NOT_RECOVERED) + mce_irq_work_queue(); + if (!addr) return; @@ -233,9 +240,6 @@ static void machine_check_ue_event(struct machine_check_event *evt) } memcpy(&local_paca->mce_info->mce_ue_event_queue[index], evt, sizeof(*evt)); - - /* Queue work to process this event later. */ - mce_irq_work_queue(); } /*