2023-12-07 01:46:08

by Qiuxu Zhuo

[permalink] [raw]
Subject: [PATCH 1/1] EDAC/skx_common: Filter out the invalid address

Decoding an invalid address with certain firmware decoders could
cause a #PF (Page Fault) in the EFI runtime context, which could
subsequently hang the system. To make {i10nm,skx}_edac more robust
against such bogus firmware decoders, filter out invalid addresses
before allowing the firmware decoder to process them.

Suggested-by: Tony Luck <[email protected]>
Signed-off-by: Qiuxu Zhuo <[email protected]>
---
drivers/edac/skx_common.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/edac/skx_common.c b/drivers/edac/skx_common.c
index ce3e0069e028..9c5b6f8bd8bd 100644
--- a/drivers/edac/skx_common.c
+++ b/drivers/edac/skx_common.c
@@ -648,6 +648,10 @@ int skx_mce_check_error(struct notifier_block *nb, unsigned long val,
memset(&res, 0, sizeof(res));
res.mce = mce;
res.addr = mce->addr & MCI_ADDR_PHYSADDR;
+ if (!pfn_to_online_page(res.addr >> PAGE_SHIFT)) {
+ pr_err("Invalid address 0x%llx in IA32_MC%d_ADDR\n", mce->addr, mce->bank);
+ return NOTIFY_DONE;
+ }

/* Try driver decoder first */
if (!(driver_decode && driver_decode(&res))) {
--
2.17.1


2024-01-02 17:38:12

by Tony Luck

[permalink] [raw]
Subject: RE: [PATCH 1/1] EDAC/skx_common: Filter out the invalid address

> Decoding an invalid address with certain firmware decoders could
> cause a #PF (Page Fault) in the EFI runtime context, which could
> subsequently hang the system. To make {i10nm,skx}_edac more robust
> against such bogus firmware decoders, filter out invalid addresses
> before allowing the firmware decoder to process them.

Applied. Thanks.

[Boris: This one with a "Link:" tag]

-Tony

2024-01-03 11:44:51

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH 1/1] EDAC/skx_common: Filter out the invalid address

On Tue, Jan 02, 2024 at 05:37:20PM +0000, Luck, Tony wrote:
> > Decoding an invalid address with certain firmware decoders could
> > cause a #PF (Page Fault) in the EFI runtime context, which could
> > subsequently hang the system. To make {i10nm,skx}_edac more robust
> > against such bogus firmware decoders, filter out invalid addresses
> > before allowing the firmware decoder to process them.
>
> Applied. Thanks.
>
> [Boris: This one with a "Link:" tag]

Thanks! :)

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette