RE: [PATCH v3 1/3] ACPI: APEI: GHES: Add devm_ghes_register_vendor_record_notifier()

Shiju Jose <[email protected]>
Newsgroups dev.linux.lists.acpica-devel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci
Message-ID <[email protected]>
>-----Original Message-----
>From: Kai-Heng Feng <[email protected]>
>Sent: 30 March 2026 10:42
>To: [email protected]
>Cc: Jonathan Cameron <[email protected]>;
>[email protected]; Guohanjun (Hanjun Guo) <[email protected]>;
>[email protected]; [email protected]; linux-
>[email protected]; [email protected]; linux-
>[email protected]; Kai-Heng Feng <[email protected]>; Shiju Jose
><[email protected]>; Tony Luck <[email protected]>; Borislav Petkov
><[email protected]>; Mauro Carvalho Chehab <[email protected]>; Shuai Xue
><[email protected]>; Len Brown <[email protected]>; Robert Moore
><[email protected]>; Fabio M. De Francesco
><[email protected]>; Breno Leitao <[email protected]>;
>Jason Tian <[email protected]>
>Subject: [PATCH v3 1/3] ACPI: APEI: GHES: Add
>devm_ghes_register_vendor_record_notifier()
>
>Add a device-managed wrapper around
>ghes_register_vendor_record_notifier()
>so drivers can avoid manual cleanup on device removal or probe failure.
>
>Cc: Shiju Jose <[email protected]>
>Cc: Jonathan Cameron <[email protected]>
>Signed-off-by: Kai-Heng Feng <[email protected]>

Reviewed-by: Shiju Jose <[email protected]>
>---
>v3:
> - Change patch title
> - Move documentation to header file.
>v2:
> - New patch.
>
> drivers/acpi/apei/ghes.c | 18 ++++++++++++++++++
> include/acpi/ghes.h      | 11 +++++++++++
> 2 files changed, 29 insertions(+)
>
>diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index
>8acd2742bb27..3236a3ce79d6 100644
>--- a/drivers/acpi/apei/ghes.c
>+++ b/drivers/acpi/apei/ghes.c
>@@ -689,6 +689,24 @@ void ghes_unregister_vendor_record_notifier(struct
>notifier_block *nb)  }
>EXPORT_SYMBOL_GPL(ghes_unregister_vendor_record_notifier);
>
>+static void ghes_vendor_record_notifier_destroy(void *nb) {
>+	ghes_unregister_vendor_record_notifier(nb);
>+}
>+
>+int devm_ghes_register_vendor_record_notifier(struct device *dev,
>+					      struct notifier_block *nb)
>+{
>+	int ret;
>+
>+	ret = ghes_register_vendor_record_notifier(nb);
>+	if (ret)
>+		return ret;
>+
>+	return devm_add_action_or_reset(dev,
>+ghes_vendor_record_notifier_destroy, nb); }
>+EXPORT_SYMBOL_GPL(devm_ghes_register_vendor_record_notifier);
>+
> static void ghes_vendor_record_work_func(struct work_struct *work)  {
> 	struct ghes_vendor_record_entry *entry; diff --git
>a/include/acpi/ghes.h b/include/acpi/ghes.h index
>7bea522c0657..8d7e5caef3f1 100644
>--- a/include/acpi/ghes.h
>+++ b/include/acpi/ghes.h
>@@ -71,6 +71,17 @@ int ghes_register_vendor_record_notifier(struct
>notifier_block *nb);
>  */
> void ghes_unregister_vendor_record_notifier(struct notifier_block *nb);
>
>+/**
>+ * devm_ghes_register_vendor_record_notifier - device-managed vendor
>+ * record notifier registration.
>+ * @dev: device that owns the notifier lifetime
>+ * @nb: pointer to the notifier_block structure of the vendor record
>+handler
>+ *
>+ * Return: 0 on success, negative errno on failure.
>+ */
>+int devm_ghes_register_vendor_record_notifier(struct device *dev,
>+					      struct notifier_block *nb);
>+
> struct list_head *ghes_get_devices(void);
>
> void ghes_estatus_pool_region_free(unsigned long addr, u32 size);
>--
>2.50.1 (Apple Git-155)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.