diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-15 13:10:39 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-26 02:41:51 +0400 |
commit | 21480547c8b85be6c08c4d77ed514673b73eda8a (patch) | |
tree | 1ea79a66c55128e36cfc4334bd6f00db3593e9fc /include/acpi | |
parent | 40e064153814ce534a28714b25cb98259f107d96 (diff) | |
download | linux-21480547c8b85be6c08c4d77ed514673b73eda8a.tar.xz |
ghes: add the needed hooks for EDAC error report
In order to allow reporting errors via EDAC, add hooks for:
1) register an EDAC driver;
2) unregister an EDAC driver;
3) report errors via EDAC.
As the EDAC driver will need to access the ghes structure, adds it
as one of the parameters for ghes_do_proc.
Acked-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/ghes.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h index 3eb8dc483449..720446cb243e 100644 --- a/include/acpi/ghes.h +++ b/include/acpi/ghes.h @@ -27,6 +27,7 @@ struct ghes { struct ghes_estatus_node { struct llist_node llnode; struct acpi_hest_generic *generic; + struct ghes *ghes; }; struct ghes_estatus_cache { @@ -43,3 +44,29 @@ enum { GHES_SEV_RECOVERABLE = 0x2, GHES_SEV_PANIC = 0x3, }; + +/* From drivers/edac/ghes_edac.c */ + +#ifdef CONFIG_EDAC_GHES +void ghes_edac_report_mem_error(struct ghes *ghes, int sev, + struct cper_sec_mem_err *mem_err); + +int ghes_edac_register(struct ghes *ghes, struct device *dev); + +void ghes_edac_unregister(struct ghes *ghes); + +#else +static inline void ghes_edac_report_mem_error(struct ghes *ghes, int sev, + struct cper_sec_mem_err *mem_err) +{ +} + +static inline int ghes_edac_register(struct ghes *ghes, struct device *dev) +{ + return 0; +} + +static inline void ghes_edac_unregister(struct ghes *ghes) +{ +} +#endif |