ACPI fixes for 6.9-rc2

- Drop __exit annotation from einj_remove() in the ACPI APEI code
    because this function can be called during runtime (Arnd Bergmann).
 
  - Make acpi_db_walk_for_fields() check acpi_evaluate_object() return
    value to avoid accessing memory that has been freed (Nikita
    Kiryushin).
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEE4fcc61cGeeHD/fCwgsRv/nhiVHEFAmYHBm0SHHJqd0Byand5
 c29ja2kubmV0AAoJEILEb/54YlRxL60P/1YoTCNFZ7E3TTmVGNhdF5hljCrB6hNK
 GUdhn/IwpM1XywiEgjGeBk9V7Z5IJR/UjI1lFqicncWt/yhw4zwmWRgk7amhPqH8
 wFJHRqBrQTrRpcJACgrg9M3VFqojVWbnkh5mp9U6KgsqAfdeYKBHVTLFJ+eidj71
 g96ROBy2Qqn21mj9L3Fd0KecR82jPX7zQEiUq/zclg8jFRh7EGJiwrgUUEGQoYZM
 nrhRzMmEs6hiBWciaN5zm/8uxLYu9iwwVjIcOkQ8rzeTkikLrzOs0UXN7+GQcbkq
 uj4TtFlGtUVvuGCD4adWzzEAYhdvTXUY5UvkXfL7scSG93cGqsBe/YFV0aq4NDFY
 pHz8/KTIvU0Dt+sz2nDZYErheWprP3uCOmLlW0CT77sAQEqJMOK06erdvk6Ke++v
 bYi81fGNfV3weeWKuVrQsN5Z5OzTZ+3nz5jUgbUrFV773jIkkxLuSE/gUWo5V8UZ
 d4RsUkaglxGWcdVT5/6kQm1jTxz2SY+AA/eWQXJU9Us/Ngatzj61W1qD1P07bZsJ
 1T1Ot0EM5ZLw7WN3Ngp7qgCst2HcwgJq00Hi3pVzx1J+BUAJpHaIqKA4nGHHtSLv
 qTzsQRAlPbRAomDCt21scNNGWxgmsjb057kk1Uv+Rxhr+Ovi58n9IE7EHS9znWa+
 GxsFVZrbAKW6
 =ptc4
 -----END PGP SIGNATURE-----

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

Pull ACPI fixes from Rafael Wysocki:
 "These fix two issues that may lead to attempts to use memory that has
  been freed already.

  Specifics:

   - Drop __exit annotation from einj_remove() in the ACPI APEI code
     because this function can be called during runtime (Arnd Bergmann)

   - Make acpi_db_walk_for_fields() check acpi_evaluate_object() return
     value to avoid accessing memory that has been freed (Nikita
     Kiryushin)"

* tag 'acpi-6.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields()
  ACPI: APEI: EINJ: mark remove callback as non-__exit
This commit is contained in:
Linus Torvalds 2024-03-29 11:37:12 -07:00
commit ab317b32cf
2 changed files with 7 additions and 3 deletions

View File

@ -550,8 +550,12 @@ acpi_db_walk_for_fields(acpi_handle obj_handle,
ACPI_FREE(buffer.pointer);
buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER;
acpi_evaluate_object(obj_handle, NULL, NULL, &buffer);
status = acpi_evaluate_object(obj_handle, NULL, NULL, &buffer);
if (ACPI_FAILURE(status)) {
acpi_os_printf("Could Not evaluate object %p\n",
obj_handle);
return (AE_OK);
}
/*
* Since this is a field unit, surround the output in braces
*/

View File

@ -851,7 +851,7 @@ static int __init einj_probe(struct platform_device *pdev)
return rc;
}
static void __exit einj_remove(struct platform_device *pdev)
static void einj_remove(struct platform_device *pdev)
{
struct apei_exec_context ctx;