EDAC/ghes: Make ghes_edac a proper module
authorJia He <justin.he@arm.com>
Mon, 10 Oct 2022 02:35:56 +0000 (02:35 +0000)
committerBorislav Petkov <bp@suse.de>
Fri, 21 Oct 2022 19:59:19 +0000 (21:59 +0200)
commit802e7f1dfed7cc7fb309995e0c4138f08977fdfc
tree736993b84576eae54f792db8c9719afbb511b61a
parent9057a3f7ac360e068ceb261938e9ae2b1a7e654c
EDAC/ghes: Make ghes_edac a proper module

Commit

  dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()")

introduced a bug leading to ghes_edac_register() to be invoked before
edac_init(). Because at that time the bus "edac" hadn't been even
registered, this created sysfs nodes as /devices/mc0 instead of
/sys/devices/system/edac/mc/mc0 on an Ampere eMag server.

Fix this by turning ghes_edac into a proper module.

The list of GHES devices returned is not protected from being modified
concurrently but it is pretty static as it gets created only during GHES
init and latter is not a module so...

  [ bp: Massage. ]

Fixes: dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()")
Co-developed-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Jia He <justin.he@arm.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20221010023559.69655-5-justin.he@arm.com
drivers/acpi/apei/ghes.c
drivers/edac/Kconfig
drivers/edac/ghes_edac.c
include/acpi/ghes.h