Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'acpi-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI fixes from Rafael Wysocki:
"These revert a problematic recent commit and fix a regression
introduced during the 5.12 development cycle.

Specifics:

- Revert recent commit that attempted to fix the FACS table reference
counting but introduced a problem with accessing the hardware
signature after hibernation (Zhang Rui).

- Fix regression in the _OSC handling that broke the loading of ACPI
tables on some systems (Mika Westerberg)"

* tag 'acpi-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
ACPI: Pass the same capabilities to the _OSC regardless of the query flag
Revert "ACPI: sleep: Put the FACS table after using it"

+10 -23
+9 -20
drivers/acpi/bus.c
··· 330 330 if (ACPI_FAILURE(acpi_run_osc(handle, &context))) 331 331 return; 332 332 333 - capbuf_ret = context.ret.pointer; 334 - if (context.ret.length <= OSC_SUPPORT_DWORD) { 335 - kfree(context.ret.pointer); 336 - return; 337 - } 338 - 339 - /* 340 - * Now run _OSC again with query flag clear and with the caps 341 - * supported by both the OS and the platform. 342 - */ 343 - capbuf[OSC_QUERY_DWORD] = 0; 344 - capbuf[OSC_SUPPORT_DWORD] = capbuf_ret[OSC_SUPPORT_DWORD]; 345 333 kfree(context.ret.pointer); 334 + 335 + /* Now run _OSC again with query flag clear */ 336 + capbuf[OSC_QUERY_DWORD] = 0; 346 337 347 338 if (ACPI_FAILURE(acpi_run_osc(handle, &context))) 348 339 return; 349 340 350 341 capbuf_ret = context.ret.pointer; 351 - if (context.ret.length > OSC_SUPPORT_DWORD) { 352 - osc_sb_apei_support_acked = 353 - capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_APEI_SUPPORT; 354 - osc_pc_lpi_support_confirmed = 355 - capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_PCLPI_SUPPORT; 356 - osc_sb_native_usb4_support_confirmed = 357 - capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_NATIVE_USB4_SUPPORT; 358 - } 342 + osc_sb_apei_support_acked = 343 + capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_APEI_SUPPORT; 344 + osc_pc_lpi_support_confirmed = 345 + capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_PCLPI_SUPPORT; 346 + osc_sb_native_usb4_support_confirmed = 347 + capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_NATIVE_USB4_SUPPORT; 359 348 360 349 kfree(context.ret.pointer); 361 350 }
+1 -3
drivers/acpi/sleep.c
··· 1009 1009 return; 1010 1010 1011 1011 acpi_get_table(ACPI_SIG_FACS, 1, (struct acpi_table_header **)&facs); 1012 - if (facs) { 1012 + if (facs) 1013 1013 s4_hardware_signature = facs->hardware_signature; 1014 - acpi_put_table((struct acpi_table_header *)facs); 1015 - } 1016 1014 } 1017 1015 #else /* !CONFIG_HIBERNATION */ 1018 1016 static inline void acpi_sleep_hibernate_setup(void) {}