summaryrefslogtreecommitdiff
path: root/include/acpi/ghes.h
diff options
context:
space:
mode:
authorJia He <justin.he@arm.com>2022-10-10 02:35:55 +0000
committerBorislav Petkov <bp@suse.de>2022-10-21 19:32:38 +0200
commit9057a3f7ac360e068ceb261938e9ae2b1a7e654c (patch)
tree7a0560dae0204f33a3a48a748134ba9bbdb68bc2 /include/acpi/ghes.h
parent8e40612f6146da1333e9bb5cfd9af7511c063d93 (diff)
EDAC/ghes: Prepare to make ghes_edac a proper module
To make ghes_edac a proper module, prepare to decouple its dependencies from GHES. Move the ghes_edac.force_load parameter to ghes.c in order to properly control whether ghes_edac should be force-loaded: In ghes_edac_register() it is too late to set the module flag. Introduce a helper ghes_get_devices(), which returns the list of GHES devices which got probed when the platform-check passes on the system. The previous force_load check is not needed in ghes_edac_unregister() since it will be checked in the module's init function of ghes_edac later. [ bp: Massage. ] Suggested-by: Toshi Kani <toshi.kani@hpe.com> Suggested-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-4-justin.he@arm.com
Diffstat (limited to 'include/acpi/ghes.h')
-rw-r--r--include/acpi/ghes.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
index 5cbd38b6e4e1..ce693e9f07a0 100644
--- a/include/acpi/ghes.h
+++ b/include/acpi/ghes.h
@@ -27,6 +27,8 @@ struct ghes {
struct timer_list timer;
unsigned int irq;
};
+ struct device *dev;
+ struct list_head elist;
};
struct ghes_estatus_node {
@@ -80,6 +82,8 @@ int ghes_edac_register(struct ghes *ghes, struct device *dev);
void ghes_edac_unregister(struct ghes *ghes);
+struct list_head *ghes_get_devices(void);
+
#else
static inline int ghes_edac_register(struct ghes *ghes, struct device *dev)
{
@@ -89,6 +93,8 @@ static inline int ghes_edac_register(struct ghes *ghes, struct device *dev)
static inline void ghes_edac_unregister(struct ghes *ghes)
{
}
+
+static inline struct list_head *ghes_get_devices(void) { return NULL; }
#endif
static inline int acpi_hest_get_version(struct acpi_hest_generic_data *gdata)