RE: [PATCH v2] apei/ghes: correctly return NULL for ghes_get_devices()

From: Justin He
Date: Thu May 25 2023 - 11:17:58 EST

Hi Li,

> -----Original Message-----
> From: Li Yang <>
> Sent: Saturday, May 20, 2023 4:13 AM
> To: Rafael J. Wysocki <rafael@xxxxxxxxxx>; Len Brown <lenb@xxxxxxxxxx>;
> James Morse <James.Morse@xxxxxxx>; Tony Luck <tony.luck@xxxxxxxxx>;
> Borislav Petkov <bp@xxxxxxxxx>; Justin He <Justin.He@xxxxxxx>
> Cc: Li Yang <>; linux-acpi@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH v2] apei/ghes: correctly return NULL for ghes_get_devices()
> Since 315bada690e0 ("EDAC: Check for GHES preference in the chipset-specific
> EDAC drivers"), vendor specific EDAC driver will not probe correctly when
> CONFIG_ACPI_APEI_GHES is enabled but no GHES device is present. Make
> ghes_get_devices() return NULL when the GHES device list is empty to fix the
> problem.
> Fixes: 9057a3f7ac36 ("EDAC/ghes: Prepare to make ghes_edac a proper
> module")
> Signed-off-by: Li Yang <>
> Cc: Jia He <justin.he@xxxxxxx>
> ---
> V2: fix the fallthrough case in x86 path
> drivers/acpi/apei/ghes.c | 2 ++
> 1 file changed, 2 insertions(+)
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index
> 34ad071a64e9..4382fe13ee3e 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -1544,6 +1544,8 @@ struct list_head *ghes_get_devices(void)
> pr_warn_once("Force-loading ghes_edac on an unsupported
> platform. You're on your own!\n");
> }
> + } else if (list_empty(&ghes_devs)) {
> + return NULL;
> }
I have no major objections to the fix. Just curious about the edac driver in you platform.
IIUC, in your case, CONFIG_ACPI_APEI_GHES is enabled and edac_ghes driver is either not
loaded or fails to load. Is my understanding correct?
I wonder whether ghes_get_devices() can unblock such check condition and let other
chipset-specific edac drivers continue with the initialization. @Toshi, What do u think of it?

Justin (Jia He)

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.