Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751575AbdGZItl (ORCPT ); Wed, 26 Jul 2017 04:49:41 -0400 Received: from mail.skyhub.de ([5.9.137.197]:59300 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751441AbdGZItk (ORCPT ); Wed, 26 Jul 2017 04:49:40 -0400 From: Borislav Petkov To: linux-edac Cc: Tony Luck , Mauro Carvalho Chehab , Toshimitsu Kani , "Rafael J. Wysocki" , LKML Subject: [PATCH 2/3] ACPI/GHES: Add an EDAC notifier chain Date: Wed, 26 Jul 2017 10:48:26 +0200 Message-Id: <20170726084827.11447-3-bp@alien8.de> X-Mailer: git-send-email 2.14.0.rc0 In-Reply-To: <20170726084827.11447-1-bp@alien8.de> References: <20170726084827.11447-1-bp@alien8.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1534 Lines: 51 From: Borislav Petkov ... so that GHES can dump memory errors into it and consumers like ghes_edac can register. Signed-off-by: Borislav Petkov --- 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