Commit 2007dd90 authored by Xiaofei Tan's avatar Xiaofei Tan Committed by Xinghai Cen
Browse files

ras: ACPI: HED: Always initialize before evged

maillist inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBQH1G
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?id=cccf6ee090c8c133072d5d5b52ae25f3bc907a16



----------------------------------------------------------------------

When the HED driver is built-in, it initializes after evged because they
both are at the same initcall level, so the initialization ordering
depends on the Makefile order.  However, this prevents RAS records
coming in between the evged driver initialization and the HED driver
initialization from being handled.

If the number of such RAS records is above the APEI HEST error source
number, the HEST resources may be exhausted, and that may affect
subsequent RAS error reporting.

To fix this issue, change the initcall level of HED to subsys_initcall
and prevent the driver from being built as a module by changing ACPI_HED
in Kconfig from "tristate" to "bool".

Signed-off-by: default avatarXiaofei Tan <tanxiaofei@huawei.com>
Link: https://patch.msgid.link/20250212063408.927666-1-tanxiaofei@huawei.com


[ rjw: Changelog edits ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: default avatarQizhi Zhang <zhangqizhi3@h-partners.com>
parent 22f72139
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -432,7 +432,7 @@ config ACPI_SBS
	  the modules will be called sbs and sbshc.

config ACPI_HED
	tristate "Hardware Error Device"
	bool "Hardware Error Device"
	help
	  This driver supports the Hardware Error Device (PNP0C33),
	  which is used to report some hardware errors notified via
+6 −1
Original line number Diff line number Diff line
@@ -72,7 +72,12 @@ static struct acpi_driver acpi_hed_driver = {
		.notify = acpi_hed_notify,
	},
};
module_acpi_driver(acpi_hed_driver);

static int __init acpi_hed_driver_init(void)
{
	return acpi_bus_register_driver(&acpi_hed_driver);
}
subsys_initcall(acpi_hed_driver_init);

ACPI_MODULE_NAME("hed");
MODULE_AUTHOR("Huang Ying");