Hello.
I've run into a problem with ACPI while trying to run any linux distribution on "HP Spectre x360 14 inch 2-in-1 Laptop PC 14-eu0000" with the latest BIOS "F.05 Rev.A" with kernel versions from 6.5 to 6.7.
During the boot or shortly after kernel spits out a crash backtrace originating at "acpi_ps_get_arg" called from "acpi_ps_delete_parse_tree" or at "acpi_ps_delete_parse_tree" itself.
It usually results in a panic and the system is halted but in some rare cases it continues to work for some random period of time so I was able to collect some debugging information.
I'm attaching parts of the log I've got booting Arch 2024.01 liveusb with kernel 6.6.8 with the following command line:
acpi.debug_layer=0x30 acpi.debug_level=0x880640 log_buf_len=256M dyndbg="file device_pm.c +p"
Layer is ACPI_PARSER | ACPI_NAMESPACE, level is ACPI_LV_PARSE_TREES | ACPI_LV_EVALUATION | ACPI_LV_NAMES | ACPI_LV_EXEC | ACPI_LV_PARSE
I wasn't able to boot more recent kernels to a working state to collect the log but they panic in the very same code.
Log part with crash starts at "ACPI: \_SB_.PC00.I2C3: PM: Power state change: D0 -> D3cold" because I think this is what triggers the problem and the crash happens after what looks like a double call of "ps_delete_parse_tree" from "ps_pop_scope" with the same subtree_root arg which should result in use-after-free and a double free.
Complete log is about 200MB, I can upload it somewhere if needed.
While the problem itself probably lies in a broken vendor ACPI code I can't understand by looking at the code how it may result in double free and panic.
I've tried to recreate this crash in user mode with dumped acpi tables to no avail:
acpiexec -b "execute \_SB_.PC00.I2C3._PS3" *.dat
...
Evaluation of \_SB_.PC00.I2C3._PS3 failed with status AE_NOT_FOUND
ACPI: No outstanding allocations
ACPI: No outstanding allocations
It looks like some memory values (IM03 == One) should be emulated in order for this method to exist but I don't know how to do it.
So this is where I'm stuck. Can you please help me from here?
I'm also attaching all the dumped tables but msdm.
There are other people on the internet with the same problem, for example
This laptop has launched less than a month ago in a few markets while being regarded as best in class by reviewers so this problem will become more widespread in the coming months.
Thanks.
Attachment:
dmesg_head
Description: Binary data
Attachment:
dmesg_tail
Description: Binary data
Attachment:
hp-spectre-14-acpi.tar.bz2
Description: application/bzip