Message ID | 20250117022957.25227-1-tanxiaofei@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v3] acpi: Fix HED module initialization order when it is built-in | expand |
On Fri, 17 Jan 2025 10:29:57 +0800 Xiaofei Tan <tanxiaofei@huawei.com> wrote: > When the module HED is built-in, the module HED init is behind EVGED > as the driver are in the same initcall level, then the order is determined > by Makefile order. That order violates expectations. Because RAS records > can't be handled in the special time window that EVGED has initialized > while HED not. > > If the number of such RAS records is more than the APEI HEST error source > number, the HEST resources could be occupied all, and then could affect > subsequent RAS error reporting. > > Change the initcall level of HED to subsys_init to fix the issue. If build > HED as a module, the problem remains. To solve this problem completely, > change the ACPI_HED from tristate to bool. > > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Given the change in approach (even though I reviewed this internally) should probably have dropped my RB. Anyhow, consider this me giving it again on list. Thanks, Jonathan > Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com> > --- > drivers/acpi/Kconfig | 2 +- > drivers/acpi/hed.c | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig > index d81b55f5068c..7f10aa38269d 100644 > --- a/drivers/acpi/Kconfig > +++ b/drivers/acpi/Kconfig > @@ -452,7 +452,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 > diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c > index 7652515a6be1..677dfcce2990 100644 > --- a/drivers/acpi/hed.c > +++ b/drivers/acpi/hed.c > @@ -81,6 +81,7 @@ static struct acpi_driver acpi_hed_driver = { > }, > }; > module_acpi_driver(acpi_hed_driver); > +subsys_initcall(acpi_hed_driver_init); > > MODULE_AUTHOR("Huang Ying"); > MODULE_DESCRIPTION("ACPI Hardware Error Device Driver");
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index d81b55f5068c..7f10aa38269d 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig @@ -452,7 +452,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 diff --git a/drivers/acpi/hed.c b/drivers/acpi/hed.c index 7652515a6be1..677dfcce2990 100644 --- a/drivers/acpi/hed.c +++ b/drivers/acpi/hed.c @@ -81,6 +81,7 @@ static struct acpi_driver acpi_hed_driver = { }, }; module_acpi_driver(acpi_hed_driver); +subsys_initcall(acpi_hed_driver_init); MODULE_AUTHOR("Huang Ying"); MODULE_DESCRIPTION("ACPI Hardware Error Device Driver");