From: Yazen Ghannam <yazen.ghannam@amd.com>
To: OptoCloud <git@optocloud.no>
Cc: Tony Luck <tony.luck@intel.com>, Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"x86@kernel.org" <x86@kernel.org>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/3] x86/mce/amd: Reset deferred-register state between polling banks
Date: Thu, 3 Sep 2026 16:36:09 -0400 [thread overview]
Message-ID: <20260903203609.GC145182@yaz-khff2.amd.com> (raw)
In-Reply-To: <ZYPjnBLNLY69gIYeH-ING5IhrnA3ryhVQquuPlWhUR-WmKLUFl3z-HRWR6q3zW88Vi9L4IpFrd5WnRhVG0AptFUR4cDvCGTJ782EUQL9u0Y=@optocloud.no>
On Sun, Aug 30, 2026 at 04:45:25AM +0000, OptoCloud wrote:
> machine_check_poll() reuses a single struct mce_hw_err while
> iterating over the MCA banks. smca_should_log_poll_error() sets
> MCE_CHECK_DFR_REGS in ->kflags when an error was taken from
> MCA_DESTAT rather than MCA_STATUS. Nothing clears the bit again for
> the rest of the poll, including on iterations that bail out of
> should_log_poll_error() early, so every later bank in the same pass
> inherits it.
>
> A stale MCE_CHECK_DFR_REGS has two effects on a later bank:
>
> - mce_read_aux() reads MCx_DEADDR instead of MCA_ADDR, so the
> address reported for that bank is wrong.
>
> - amd_clear_bank() returns before writing 0 to MCA_STATUS, so the
> bank is logged again on the next poll.
>
> Clear MCE_CHECK_DFR_REGS at the start of each iteration, alongside
> the other bank-local resets.
>
> Found by code inspection; not reproduced on hardware.
>
> Fixes: 7cb735d7c0cb ("x86/mce: Unify AMD DFR handler with MCA Polling")
> Cc: stable@vger.kernel.org
> Signed-off-by: Eirik Bøe <git@optocloud.no>
> ---
> arch/x86/kernel/cpu/mce/core.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
> index e4e588d02a18..6ed14ec171f2 100644
> --- a/arch/x86/kernel/cpu/mce/core.c
> +++ b/arch/x86/kernel/cpu/mce/core.c
> @@ -811,6 +811,7 @@ void machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
> m->synd = 0;
> err.vendor.amd.synd1 = 0;
> err.vendor.amd.synd2 = 0;
> + m->kflags &= ~MCE_CHECK_DFR_REGS;
> m->bank = i;
>
> barrier();
> --
Same feedback as patches 1 and 2.
Additionally, why single out the MCE_CHECK_DFR_REGS flag? Why not just
reset the entire kflags field?
Thanks,
Yazen
next prev parent reply other threads:[~2026-09-03 20:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-30 4:45 [PATCH 3/3] x86/mce/amd: Reset deferred-register state between polling banks OptoCloud
2026-09-03 20:36 ` Yazen Ghannam [this message]
2026-09-03 22:39 ` [PATCH v2 " OptoCloud
2026-09-11 13:44 ` Yazen Ghannam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260903203609.GC145182@yaz-khff2.amd.com \
--to=yazen.ghannam@amd.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=git@optocloud.no \
--cc=hpa@zytor.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.