From: Borislav Petkov <b...@suse.de> ... so that GHES can dump memory errors into it and consumers like ghes_edac can register.
Signed-off-by: Borislav Petkov <b...@suse.de> --- drivers/acpi/apei/ghes.c | 14 ++++++++++++++ include/acpi/ghes.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index d661d452b238..3f05f5ff3461 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -140,6 +140,20 @@ static atomic_t ghes_estatus_cache_alloced; static int ghes_panic_timeout __read_mostly = 30; +static ATOMIC_NOTIFIER_HEAD(ghes_edac_chain); + +void ghes_register_edac_chain(struct notifier_block *nb) +{ + atomic_notifier_chain_register(&ghes_edac_chain, nb); +} +EXPORT_SYMBOL_GPL(ghes_register_edac_chain); + +void ghes_unregister_edac_chain(struct notifier_block *nb) +{ + atomic_notifier_chain_unregister(&ghes_edac_chain, nb); +} +EXPORT_SYMBOL_GPL(ghes_unregister_edac_chain); + static int ghes_ioremap_init(void) { ghes_ioremap_area = __get_vm_area(PAGE_SIZE * GHES_IOREMAP_PAGES, diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h index 9f26e01186ae..506b6a197738 100644 --- a/include/acpi/ghes.h +++ b/include/acpi/ghes.h @@ -76,6 +76,8 @@ static inline void ghes_edac_unregister(struct ghes *ghes) { } #endif +void ghes_register_edac_chain(struct notifier_block *nb); +void ghes_unregister_edac_chain(struct notifier_block *nb); static inline int acpi_hest_get_version(struct acpi_hest_generic_data *gdata) { -- 2.14.0.rc0