| From 4783b9cb374af02d49740e00e2da19fd4ed6dec4 Mon Sep 17 00:00:00 2001 |
| From: Yazen Ghannam <yazen.ghannam@amd.com> |
| Date: Wed, 1 Mar 2023 22:14:20 +0000 |
| Subject: x86/mce: Make sure logged MCEs are processed after sysfs update |
| |
| From: Yazen Ghannam <yazen.ghannam@amd.com> |
| |
| commit 4783b9cb374af02d49740e00e2da19fd4ed6dec4 upstream. |
| |
| 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") |
| Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> |
| Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> |
| Reviewed-by: Tony Luck <tony.luck@intel.com> |
| Cc: stable@vger.kernel.org |
| Link: https://lore.kernel.org/r/20230301221420.2203184-1-yazen.ghannam@amd.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/kernel/cpu/mce/core.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/arch/x86/kernel/cpu/mce/core.c |
| +++ b/arch/x86/kernel/cpu/mce/core.c |
| @@ -2365,6 +2365,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 */ |