Message ID | 20231010082123.4167603-1-guohanjun@huawei.com |
---|---|
State | Accepted |
Commit | d5921c460e543228d100daf67dac7a03dfaaa40a |
Headers | show |
Series | ACPI: bus: Move acpi_arm_init() to the place of after acpi_ghes_init() | expand |
On Tue, Oct 10, 2023 at 8:11 PM D Scott Phillips <scott@os.amperecomputing.com> wrote: > > Hanjun Guo <guohanjun@huawei.com> writes: > > > acpi_agdi_init() in acpi_arm_init() will register a SDEI event, so > > it needs the SDEI subsystem to be initialized (which is done in > > acpi_ghes_init()) before the AGDI driver probing. > > > > In commit fcea0ccf4fd7 ("ACPI: bus: Consolidate all arm specific > > initialisation into acpi_arm_init()"), the acpi_agdi_init() was > > called before acpi_ghes_init() and it causes following failure: > > > > | [ 0.515864] sdei: Failed to create event 1073741825: -5 > > | [ 0.515866] agdi agdi.0: Failed to register for SDEI event 1073741825 > > | [ 0.515867] agdi: probe of agdi.0 failed with error -5 > > | ... > > | [ 0.516022] sdei: SDEIv1.0 (0x0) detected in firmware. > > > > Fix it by moving acpi_arm_init() to the place of after > > acpi_ghes_init(). > > > > Fixes: fcea0ccf4fd7 ("ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init()") > > Reported-by: D Scott Phillips <scott@os.amperecomputing.com> > > Signed-off-by: Hanjun Guo <guohanjun@huawei.com> > > Tested-by: D Scott Phillips <scott@os.amperecomputing.com> > > Thanks Hanjun and Sudeep Applied as 6.6-rc material, thanks!
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index f41dda2d3493..a4aa53b7e2bb 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1410,10 +1410,10 @@ static int __init acpi_init(void) acpi_init_ffh(); pci_mmcfg_late_init(); - acpi_arm_init(); acpi_viot_early_init(); acpi_hest_init(); acpi_ghes_init(); + acpi_arm_init(); acpi_scan_init(); acpi_ec_init(); acpi_debugfs_init();
acpi_agdi_init() in acpi_arm_init() will register a SDEI event, so it needs the SDEI subsystem to be initialized (which is done in acpi_ghes_init()) before the AGDI driver probing. In commit fcea0ccf4fd7 ("ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init()"), the acpi_agdi_init() was called before acpi_ghes_init() and it causes following failure: | [ 0.515864] sdei: Failed to create event 1073741825: -5 | [ 0.515866] agdi agdi.0: Failed to register for SDEI event 1073741825 | [ 0.515867] agdi: probe of agdi.0 failed with error -5 | ... | [ 0.516022] sdei: SDEIv1.0 (0x0) detected in firmware. Fix it by moving acpi_arm_init() to the place of after acpi_ghes_init(). Fixes: fcea0ccf4fd7 ("ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init()") Reported-by: D Scott Phillips <scott@os.amperecomputing.com> Signed-off-by: Hanjun Guo <guohanjun@huawei.com> --- I did a test on a ARM server and I didn't see regressions, but I don't have a AGDI table firmware, so Scott please give a test to see if it fixes your issue. drivers/acpi/bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)