RE: [PATCH 24/28] EDAC/thunderx: Fix stale error context in thunderx_l2c_threaded_isr()
From: Loktionov, Aleksandr
Date: Wed Sep 16 2026 - 02:03:28 EST
> -----Original Message-----
> From: Bill Wendling <morbo@xxxxxxxxxx>
> Sent: Tuesday, September 15, 2026 10:19 AM
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Bill Wendling <morbo@xxxxxxxxxx>; Russell King
> <linux@xxxxxxxxxxxxxxx>; Huacai Chen <chenhuacai@xxxxxxxxxx>; WANG
> Xuerui <kernel@xxxxxxxxxx>; Thomas Bogendoerfer
> <tsbogend@xxxxxxxxxxxxxxxx>; James E.J. Bottomley
> <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>; Helge Deller <deller@xxxxxx>;
> Thomas Gleixner <tglx@xxxxxxxxxx>; Ingo Molnar <mingo@xxxxxxxxxx>;
> Borislav Petkov <bp@xxxxxxxxx>; Dave Hansen
> <dave.hansen@xxxxxxxxxxxxxxx>; x86@xxxxxxxxxx; H. Peter Anvin
> <hpa@xxxxxxxxx>; Ian Abbott <abbotti@xxxxxxxxx>; H Hartley Sweeten
> <hsweeten@xxxxxxxxxxxxxxxxxxx>; Luck, Tony <tony.luck@xxxxxxxxx>;
> Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>; Maxime Ripard
> <mripard@xxxxxxxxxx>; Thomas Zimmermann <tzimmermann@xxxxxxx>; David
> Airlie <airlied@xxxxxxxxx>; Simona Vetter <simona@xxxxxxxx>; Brost,
> Matthew <matthew.brost@xxxxxxxxx>; Thomas Hellström
> <thomas.hellstrom@xxxxxxxxxxxxxxx>; Vivi, Rodrigo
> <rodrigo.vivi@xxxxxxxxx>; Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>;
> Matthias Schwarzott <zzam@xxxxxxxxxx>; Mauro Carvalho Chehab
> <mchehab@xxxxxxxxxx>; Nguyen, Anthony L <anthony.l.nguyen@xxxxxxxxx>;
> Kitszel, Przemyslaw <przemyslaw.kitszel@xxxxxxxxx>; Andrew Lunn
> <andrew+netdev@xxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; Eric
> Dumazet <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo
> Abeni <pabeni@xxxxxxxxxx>; Arend van Spriel
> <arend.vanspriel@xxxxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>;
> Saravana Kannan <saravanak@xxxxxxxxxx>; Krzysztof Kozlowski
> <krzk@xxxxxxxxxx>; Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>; Peter
> Griffin <peter.griffin@xxxxxxxxxx>; Alim Akhtar
> <alim.akhtar@xxxxxxxxxxx>; Linus Walleij <linusw@xxxxxxxxxx>; Anil
> Gurumurthy <anil.gurumurthy@xxxxxxxxxx>; Sudarsana Kalluru
> <sudarsana.kalluru@xxxxxxxxxx>; Martin K. Petersen <mkp@xxxxxxxxxx>;
> Trond Myklebust <trondmy@xxxxxxxxxx>; Anna Schumaker
> <anna@xxxxxxxxxx>; Mike Marshall <hubcap@xxxxxxxxxxxx>; Martin
> Brandenburg <martin@xxxxxxxxxxxx>; Kees Cook <kees@xxxxxxxxxx>; Jiri
> Pirko <jiri@xxxxxxxxxxx>; Simon Horman <horms@xxxxxxxxxx>; Chuck Lever
> <cel@xxxxxxxxxx>; Jeff Layton <jlayton@xxxxxxxxxx>; NeilBrown
> <neil@xxxxxxxxxx>; Olga Kornievskaia <okorniev@xxxxxxxxxx>; Dai Ngo
> <Dai.Ngo@xxxxxxxxxx>; Tom Talpey <tom@xxxxxxxxxx>; Jaroslav Kysela
> <perex@xxxxxxxx>; Takashi Iwai <tiwai@xxxxxxxx>; Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx>; Mike Rapoport (Microsoft)
> <rppt@xxxxxxxxxx>; Kanglong Wang <wangkanglong@xxxxxxxxxxx>; Tiezhu
> Yang <yangtiezhu@xxxxxxxxxxx>; Qiang Ma <maqianga@xxxxxxxxxxxxx>;
> Randy Dunlap <rdunlap@xxxxxxxxxxxxx>; Pengpeng Hou
> <pengpeng@xxxxxxxxxxx>; Ard Biesheuvel <ardb@xxxxxxxxxx>; Breno Leitao
> <leitao@xxxxxxxxxx>; Thorsten Blum <blum@xxxxxxxxxx>; Harshit
> Mogalapalli <harshit.m.mogalapalli@xxxxxxxxxx>; Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx>; Lyude Paul <lyude@xxxxxxxxxx>; Ashutosh
> Desai <ashutoshdesai993@xxxxxxxxx>; Deak, Imre <imre.deak@xxxxxxxxx>;
> Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>; Johan Hovold
> <johan@xxxxxxxxxx>; Berg, Johannes <johannes.berg@xxxxxxxxx>;
> Korenblit, Miriam Rachel <miriam.rachel.korenblit@xxxxxxxxx>;
> Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>; Cryolitia PukNgae
> <cryolitia@xxxxxxxxxxxxx>; Jiaming Zhang <r772577952@xxxxxxxxx>; Will
> Porter <mrwillporter@xxxxxxxxx>; Cen Zhang <zzzccc427@xxxxxxxxx>;
> Cássio Gabriel <cassiogabrielcontato@xxxxxxxxx>; Rong Zhang
> <i@xxxxxxxx>; Arun Raghavan <arunr@xxxxxxxxxxxxxxxxx>; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; loongarch@xxxxxxxxxxxxxxx; linux-
> mips@xxxxxxxxxxxxxxx; linux-parisc@xxxxxxxxxxxxxxx; linux-
> edac@xxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; intel-
> xe@xxxxxxxxxxxxxxxxxxxxx; linux-input@xxxxxxxxxxxxxxx; linux-
> media@xxxxxxxxxxxxxxx; intel-wired-lan@xxxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx;
> brcm80211@xxxxxxxxxxxxxxx; brcm80211-dev-list.pdl@xxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-samsung-soc@xxxxxxxxxxxxxxx; linux-
> gpio@xxxxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; linux-
> nfs@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxx; linux-
> hardening@xxxxxxxxxxxxxxx; linux-sound@xxxxxxxxxxxxxxx
> Subject: [PATCH 24/28] EDAC/thunderx: Fix stale error context in
> thunderx_l2c_threaded_isr()
>
> thunderx_l2c_threaded_isr() computes "tail" and "ctx" once before
> entering the loop that drains the L2C error ring, and never updates
> them on subsequent iterations. When multiple errors are queued, every
> iteration reports the first ring entry rather than advancing through
> the ring, causing subsequent hardware errors in a batch to go
> unreported.
>
> Recompute "tail" and "ctx" at the start of each loop iteration,
> matching the sibling thunderx_ocx_com_threaded_isr() and
> thunderx_ocx_lnk_threaded_isr() handlers.
>
> Fixes: 41003396f932 ("EDAC, thunderx: Add Cavium ThunderX EDAC
> driver")
> Signed-off-by: Bill Wendling <morbo@xxxxxxxxxx>
> ---
> Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> Cc: Huacai Chen <chenhuacai@xxxxxxxxxx>
> Cc: WANG Xuerui <kernel@xxxxxxxxxx>
> Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
> Cc: "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> Cc: Helge Deller <deller@xxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: Ian Abbott <abbotti@xxxxxxxxx>
> Cc: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
> Cc: Maxime Ripard <mripard@xxxxxxxxxx>
> Cc: Thomas Zimmermann <tzimmermann@xxxxxxx>
> Cc: David Airlie <airlied@xxxxxxxxx>
> Cc: Simona Vetter <simona@xxxxxxxx>
> Cc: Matthew Brost <matthew.brost@xxxxxxxxx>
> Cc: "Thomas Hellström" <thomas.hellstrom@xxxxxxxxxxxxxxx>
> Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> Cc: Matthias Schwarzott <zzam@xxxxxxxxxx>
> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
> Cc: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
> Cc: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
> Cc: Andrew Lunn <andrew+netdev@xxxxxxx>
> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
> Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
> Cc: Paolo Abeni <pabeni@xxxxxxxxxx>
> Cc: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
> Cc: Rob Herring <robh@xxxxxxxxxx>
> Cc: Saravana Kannan <saravanak@xxxxxxxxxx>
> Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> Cc: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
> Cc: Peter Griffin <peter.griffin@xxxxxxxxxx>
> Cc: Alim Akhtar <alim.akhtar@xxxxxxxxxxx>
> Cc: Linus Walleij <linusw@xxxxxxxxxx>
> Cc: Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>
> Cc: Sudarsana Kalluru <sudarsana.kalluru@xxxxxxxxxx>
> Cc: "Martin K. Petersen" <mkp@xxxxxxxxxx>
> Cc: Trond Myklebust <trondmy@xxxxxxxxxx>
> Cc: Anna Schumaker <anna@xxxxxxxxxx>
> Cc: Mike Marshall <hubcap@xxxxxxxxxxxx>
> Cc: Martin Brandenburg <martin@xxxxxxxxxxxx>
> Cc: Kees Cook <kees@xxxxxxxxxx>
> Cc: Jiri Pirko <jiri@xxxxxxxxxxx>
> Cc: Simon Horman <horms@xxxxxxxxxx>
> Cc: Chuck Lever <cel@xxxxxxxxxx>
> Cc: Jeff Layton <jlayton@xxxxxxxxxx>
> Cc: NeilBrown <neil@xxxxxxxxxx>
> Cc: Olga Kornievskaia <okorniev@xxxxxxxxxx>
> Cc: Dai Ngo <Dai.Ngo@xxxxxxxxxx>
> Cc: Tom Talpey <tom@xxxxxxxxxx>
> Cc: Jaroslav Kysela <perex@xxxxxxxx>
> Cc: Takashi Iwai <tiwai@xxxxxxxx>
> Cc: Bill Wendling <morbo@xxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: "Mike Rapoport (Microsoft)" <rppt@xxxxxxxxxx>
> Cc: Kanglong Wang <wangkanglong@xxxxxxxxxxx>
> Cc: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
> Cc: Qiang Ma <maqianga@xxxxxxxxxxxxx>
> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Pengpeng Hou <pengpeng@xxxxxxxxxxx>
> Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
> Cc: Breno Leitao <leitao@xxxxxxxxxx>
> Cc: Thorsten Blum <blum@xxxxxxxxxx>
> Cc: Harshit Mogalapalli <harshit.m.mogalapalli@xxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Lyude Paul <lyude@xxxxxxxxxx>
> Cc: Ashutosh Desai <ashutoshdesai993@xxxxxxxxx>
> Cc: Imre Deak <imre.deak@xxxxxxxxx>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
> Cc: Johan Hovold <johan@xxxxxxxxxx>
> Cc: Johannes Berg <johannes.berg@xxxxxxxxx>
> Cc: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
> Cc: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
> Cc: Cryolitia PukNgae <cryolitia@xxxxxxxxxxxxx>
> Cc: Jiaming Zhang <r772577952@xxxxxxxxx>
> Cc: Will Porter <mrwillporter@xxxxxxxxx>
> Cc: Cen Zhang <zzzccc427@xxxxxxxxx>
> Cc: "Cássio Gabriel" <cassiogabrielcontato@xxxxxxxxx>
> Cc: Rong Zhang <i@xxxxxxxx>
> Cc: Arun Raghavan <arunr@xxxxxxxxxxxxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: loongarch@xxxxxxxxxxxxxxx
> Cc: linux-mips@xxxxxxxxxxxxxxx
> Cc: linux-parisc@xxxxxxxxxxxxxxx
> Cc: linux-edac@xxxxxxxxxxxxxxx
> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: intel-xe@xxxxxxxxxxxxxxxxxxxxx
> Cc: linux-input@xxxxxxxxxxxxxxx
> Cc: linux-media@xxxxxxxxxxxxxxx
> Cc: intel-wired-lan@xxxxxxxxxxxxxxxx
> Cc: netdev@xxxxxxxxxxxxxxx
> Cc: linux-wireless@xxxxxxxxxxxxxxx
> Cc: brcm80211@xxxxxxxxxxxxxxx
> Cc: brcm80211-dev-list.pdl@xxxxxxxxxxxx
> Cc: devicetree@xxxxxxxxxxxxxxx
> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx
> Cc: linux-gpio@xxxxxxxxxxxxxxx
> Cc: linux-scsi@xxxxxxxxxxxxxxx
> Cc: linux-nfs@xxxxxxxxxxxxxxx
> Cc: devel@xxxxxxxxxxxxxxxxxx
> Cc: linux-hardening@xxxxxxxxxxxxxxx
> Cc: linux-sound@xxxxxxxxxxxxxxx
> ---
> drivers/edac/thunderx_edac.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/edac/thunderx_edac.c
> b/drivers/edac/thunderx_edac.c index 9c0a1e48f96f..e7c335ca0c36 100644
> --- a/drivers/edac/thunderx_edac.c
> +++ b/drivers/edac/thunderx_edac.c
> @@ -1880,6 +1880,9 @@ static irqreturn_t thunderx_l2c_threaded_isr(int
> irq, void *irq_id)
>
> while (CIRC_CNT(l2c->ring_head, l2c->ring_tail,
> ARRAY_SIZE(l2c->err_ctx))) {
> + tail = ring_pos(l2c->ring_tail, ARRAY_SIZE(l2c-
> >err_ctx));
> + ctx = &l2c->err_ctx[tail];
> +
> snprintf(msg, L2C_MESSAGE_SIZE,
> "%s: %s: %016llx, %s: %016llx",
> l2c->edac_dev->ctl_name, reg_int_name, ctx-
> >reg_int,
> --
> 2.55.0.1032.g73a4cd73de-goog
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@xxxxxxxxx>