Message ID | 20230301221420.2203184-1-yazen.ghannam@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] x86/mce: Schedule work after restart from sysfs update | expand |
> Call mce_schedule_work() at the end of mce_restart() so that queued > errors are processed. Reviewed-by: Tony Luck <tony.luck@intel.com> -Tony
On 3/1/23 17:14, Yazen Ghannam wrote: > A recent change introduced a flag to queue up errors found during > boot-time polling. These errors will be processed during late init once > the MCE subsystem is fully set up. > > A number of sysfs updates call mce_restart() which goes through a subset > of the CPU init flow. This includes polling MCA banks and logging any > errors found. Since the same function is used as boot-time polling, > errors will be queued. However, the system is now past late init, so the > errors will remain queued until another error is found and the workqueue > is triggered. > > Call mce_schedule_work() at the end of mce_restart() so that queued > errors are processed. > > Fixes: 3bff147b187d ("x86/mce: Defer processing of early errors") > Cc: stable@vger.kernel.org Yazen, Despite Cc: stable@vger.kernel.org being here, the list wasn't Cc'd on this email. Figured I'd let you know in case you create a v3 or resend at any point :). Cheers, -- Slade
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index 7832a69d170e..2eec60f50057 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -2355,6 +2355,7 @@ static void mce_restart(void) { mce_timer_delete_all(); on_each_cpu(mce_cpu_restart, NULL, 1); + mce_schedule_work(); } /* Toggle features for corrected errors */
A recent change introduced a flag to queue up errors found during boot-time polling. These errors will be processed during late init once the MCE subsystem is fully set up. A number of sysfs updates call mce_restart() which goes through a subset of the CPU init flow. This includes polling MCA banks and logging any errors found. Since the same function is used as boot-time polling, errors will be queued. However, the system is now past late init, so the errors will remain queued until another error is found and the workqueue is triggered. Call mce_schedule_work() at the end of mce_restart() so that queued errors are processed. Fixes: 3bff147b187d ("x86/mce: Defer processing of early errors") Cc: stable@vger.kernel.org Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> --- Link: https://lore.kernel.org/r/20230301202623.2092271-1-yazen.ghannam@amd.com v1->v2: * Refer to correct function in commit message. arch/x86/kernel/cpu/mce/core.c | 1 + 1 file changed, 1 insertion(+)