https://bugzilla.kernel.org/show_bug.cgi?id=212277
Bug ID: 212277 Summary: Access to ACPI table after release Product: ACPI Version: 2.5 Kernel Version: 5.12-rc2 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: ACPICA-Core Assignee: acpi_acpica-c...@kernel-bugs.osdl.org Reporter: sth....@tejp.de Regression: No In drivers/acpi/sleep.c, a table pointer form acpi_get_table() seems to be used after it has been released with acpi_put_table(). AFAIK this shouldn't be done. acpi_sleep_hibernate_setup() stores an ACPI table from acpi_get_table() in the global variable facs and then releases the table with acpi_put_table(): acpi_get_table(ACPI_SIG_FACS, 1, (struct acpi_table_header **)&facs); if (facs) { s4_hardware_signature = facs->hardware_signature; acpi_put_table((struct acpi_table_header *)facs); } acpi_hibernation_leave() later accesses *facs: /* Check the hardware signature */ if (facs && s4_hardware_signature != facs->hardware_signature) pr_crit("ACPI: Hardware changed while hibernated, success doubtful!\n"); This doesn't seem correct. I would guess acpi_hibernation_leave() should probably do its own acpi_get_table()/acpi_put_table(). -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug. _______________________________________________ acpi-bugzilla mailing list acpi-bugzilla@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla