lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0hP_9QeMbeB=oa8+4GaO77HuhpdqEngHsd2K-sF_yQ+Ew@mail.gmail.com>
Date: Thu, 5 Feb 2026 20:40:40 +0100
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: ACPI Devel Maling List <linux-acpi@...r.kernel.org>, Linux PM <linux-pm@...r.kernel.org>, 
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Daniel Lezcano <daniel.lezcano@...aro.org>
Subject: [GIT PULL] ACPI support updates for v6.20-rc1/v7.0-rc1

Hi Linus,

This goes a bit early, but it's ready.

Please pull from the tag

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 acpi-6.20-rc1

with top-most commit dfa5dc3ad3b15a519101f134ed76c068526004e4

 Merge branch 'acpi-apei'

on top of commit 63804fed149a6750ffd28610c5c1c98cce6bd377

 Linux 6.19-rc7

to receive ACPI support updates for 6.20-rc1/7.0-rc1 (whichever it
turns out to be).

This one is significantly larger than previous ACPI support pull
requests because several significant updates have coincided in it.

First, there is a routine ACPICA code update, to upstream version
20251212, but this time it covers new ACPI 6.6 material that has not
been covered yet.  Among other things, it includes definitions of a
few new ACPI tables and updates of some others, like the GICv5 MADT
structures and ARM IORT IWB node definitions that are used for adding
GICv5 ACPI probing on ARM (that technically is IRQ subsystem material,
but it depends on the ACPICA changes, so it is included here).  The
latter alone adds a few hundred lines of new code.

Second, there is an update of ACPI _OSC handling including a fix that
prevents failures from occurring in some corner cases due to careless
handling of _OSC error bits.

On top of that, the "system resource" ACPI device objects with the
PNP0C01 and PNP0C02 are now going to be handled by the ACPI core
device enumeration code instead of handing them over to the legacy
PNP system driver which causes device enumeration issues to occur.
Some of those issues have been worked around in device drivers and
elsewhere and those workarounds should not be necessary any more, so
they are going away.

Moreover, the time has come to convert all "core ACPI" device drivers
that were still using struct acpi_driver objects for device binding
into proper platform drivers that use struct platform_driver for this
purpose.  These updates are accompanied by some requisite core ACPI
device enumeration code changes.

Next, there are ACPI APEI updates, including changes to avoid excess
overhead in the NMI handler and in SEA on the ARM side, changes
to unify ACPI-based HW error tracing and logging, and changes to
prevent APEI code from reaching out of its allocated memory.

There are also some ACPI power management updates, mostly related to
the ACPI cpuidle support in the processor driver, suspend-to-idle
handling on systems with ACPI support and to ACPI PM of devices.

In addition to the above, bugs are fixed and the code is cleaned up
in assorted places all over.

Specifics:

 - Update the ACPICA code in the kernel to upstream version 20251212
   which includes the following changes:

   * Add support for new ACPI table DTPR (Michal Camacho Romero)
   * Release objects with acpi_ut_delete_object_desc() (Zilin Guan)
   * Add UUIDs for Microsoft fan extensions and UUIDs associated with
     TPM 2.0 devices (Armin Wolf)
   * Fix NULL pointer dereference in acpi_ev_address_space_dispatch()
     (Alexey Simakov)
   * Add KEYP ACPI table definition (Dave Jiang)
   * Add support for the Microsoft display mux _OSI string (Armin Wolf)
   * Add definitions for the IOVT ACPI table (Xianglai Li)
   * Abort AML bytecode execution on AML_FATAL_OP (Armin Wolf)
   * Include all fields in subtable type1 for PPTT (Ben Horgan)
   * Add GICv5 MADT structures and Arm IORT IWB node definitions (Jose
     Marinho)
   * Update Parameter Block structure for RAS2 and add a new flag in
     Memory Affinity Structure for SRAT (Pawel Chmielewski)
   * Add _VDM (Voltage Domain) object (Pawel Chmielewski)

 - Add support for GICv5 ACPI probing on ARM which is based on the
   GICv5 MADT structures and ARM IORT IWB node definitions recently
   added to ACPICA (Lorenzo Pieralisi)

 - Rework ACPI PM notification setup for PCI root buses and modify the
   ACPI PM setup for devices to register wakeup source objects under
   physical (that is, PCI, platform, etc.) devices instead of doing that
   under their ACPI companions (Rafael Wysocki)

 - Adjust debug messages regarding postponed ACPI PM printed during
   system resume to be more accurate (Rafael Wysocki)

 - Remove dead code from lps0_device_attach() (Gergo Koteles)

 - Start to invoke Microsoft Function 9 (Turn On Display) of the Low-
   Power S0 Idle (LPS0) _DSM in the suspend-to-idle resume flow on
   systems with ACPI LPS0 support to address a functional issue on
   Lenovo Yoga Slim 7i Aura (15ILL9), where system fans and keyboard
   backlights fail to resume after suspend (Jakob Riemenschneider)

 - Add sysfs attribute cid for exposing _CID lists under ACPI device
   objects (Rafael Wysocki)

 - Replace sprintf() with sysfs_emit() in all of the core ACPI sysfs
   interface code (Sumeet Pawnikar)

 - Use acpi_get_local_u64_address() in the code implementing ACPI
   support for PCI to evaluate _ADR instead of evaluating that object
   directly (Andy Shevchenko)

 - Add JWIPC JVC9100 to irq1_level_low_skip_override[] to unbreak
   serial IRQs on that system (Ai Chao)

 - Fix handling of _OSC errors in acpi_run_osc() to avoid failures on
   systems where _OSC error bits are set even though the _OSC return
   buffer contains acknowledged feature bits (Rafael Wysocki)

 - Clean up and rearrange \_SB._OSC handling for general platform
   features and USB4 features to avoid code duplication and unnecessary
   memory management overhead (Rafael Wysocki)

 - Make the ACPI core device enumeration code handle PNP0C01 and PNP0C02
   ("system resource") device objects directly instead of letting the
   legacy PNP system driver handle them to avoid device enumeration
   issues on systems where PNP0C02 is present in the _CID list under
   ACPI device objects with a _HID matching a proper device driver in
   Linux (Rafael Wysocki)

 - Drop workarounds for the known device enumeration issues related to
   _CID lists containing PNP0C02 (Rafael Wysocki)

 - Drop outdated comment regarding removed function in the ACPI-based
   device enumeration code (Julia Lawall)

 - Make PRP0001 device matching work as expected for ACPI device objects
   using it as a _HID for board development and similar purposes (Kartik
   Rajput)

 - Use async schedule function in acpi_scan_clear_dep_fn() to avoid
   races with user space initialization on some systems (Yicong Yang)

 - Add a piece of documentation explaining why binding drivers directly
   to ACPI device objects is not a good idea in general and why it is
   desirable to convert drivers doing so into proper platform drivers
   that use struct platform_driver for device binding (Rafael Wysocki)

 - Convert multiple "core ACPI" drivers, including the NFIT ACPI device
   driver, the generic ACPI button drivers, the generic ACPI thermal
   zone driver, the ACPI hardware event device (HED) driver, the ACPI EC
   driver, the ACPI SMBUS HC driver, the ACPI Smart Battery Subsystem
   (SBS) driver, and the ACPI backlight (video) driver to proper platform
   drivers that use struct platform_driver for device binding (Rafael
   Wysocki)

 - Use acpi_get_local_u64_address() in the ACPI backlight (video) driver
   to evaluate _ADR instead of evaluating that object directly (Andy
   Shevchenko)

 - Convert the generic ACPI battery driver to a proper platform driver
   using struct platform_driver for device binding (Rafael Wysocki)

 - Fix incorrect charging status when current is zero in the generic
   ACPI battery driver (Ata İlhan Köktürk)

 - Use LIST_HEAD() for initializing a stack-allocated list in the
   generic ACPI watchdog device driver (Can Peng)

 - Rework the ACPI idle driver initialization to register it directly
   from the common initialization code instead of doing that from a
   CPU hotplug "online" callback and clean it up (Huisong Li, Rafael
   Wysocki)

 - Fix a possible NULL pointer dereference in
   acpi_processor_errata_piix4() (Tuo Li)

 - Make read-only array non_mmio_desc[] static const (Colin Ian King)

 - Prevent the APEI GHES support code on ARM from accessing memory out
   of bounds or going past the ARM processor CPER record buffer (Mauro
   Carvalho Chehab)

 - Prevent cper_print_fw_err() from dumping the entire memory on systems
   with defective firmware (Mauro Carvalho Chehab)

 - Improve ghes_notify_nmi() status check to avoid unnecessary overhead
   in the NMI handler by carrying out all of the requisite preparations
   and the NMI registration time (Tony Luck)

 - Refactor the GHES driver by extracting common functionality into
   reusable helper functions to reduce code duplication and improve
   the ghes_notify_sea() status check in analogy with the previous
   ghes_notify_nmi() status check improvement (Shuai Xue)

 - Make ELOG and GHES log and trace consistently and support the CPER
   CXL protocol analogously (Fabio De Francesco)

 - Disable KASAN instrumentation in the APEI GHES driver when compile
   testing with clang < 18 (Nathan Chancellor)

 - Let ghes_edac be the preferred driver to load on  __ZX__ and _BYO_
   systems by extending the platform detection list in the APEI GHES
   driver (Tony W Wang-oc)

 - Clean up cppc_perf_caps and cppc_perf_ctrls structs and rename EPP
   constants for clarity in the ACPI CPPC library (Sumit Gupta)

Thanks!


---------------

Ai Chao (1):
      ACPI: resource: Add JWIPC JVC9100 to irq1_level_low_skip_override[]

Alexey Simakov (1):
      ACPICA: Fix NULL pointer dereference in acpi_ev_address_space_dispatch()

Andy Shevchenko (2):
      ACPI: video: simplify code with acpi_get_local_u64_address()
      ACPI: PCI: simplify code with acpi_get_local_u64_address()

Armin Wolf (5):
      ACPICA: Add UUID for Microsoft fan extensions
      ACPICA: Add UUIDs associated with TPM 2.0 devices
      ACPICA: Add support for the Microsoft display mux _OSI string
      ACPICA: Abort AML bytecode execution when executing AML_FATAL_OP
      ACPICA: Fix asltests using the Fatal() opcode

Ata İlhan Köktürk (1):
      ACPI: battery: fix incorrect charging status when current is zero

Ben Horgan (1):
      ACPICA: ACPI 6.4: PPTT: include all fields in subtable type1

Can Peng (1):
      ACPI: acpi_watchdog: use LIST_HEAD for stack-allocated list

Colin Ian King (1):
      ACPI: APEI: EINJ: make read-only array non_mmio_desc static const

Dave Jiang (1):
      ACPICA: Add KEYP table definition

Fabio M. De Francesco (5):
      ACPI: extlog: Trace CPER Non-standard Section Body
      ACPI: extlog: Trace CPER PCI Express Error Section
      ACPI: APEI: GHES: Add helper for CPER CXL protocol errors checks
      ACPI: APEI: GHES: Add helper to copy CPER CXL protocol error
info to work struct
      ACPI: extlog: Trace CPER CXL Protocol Error Section

Gergo Koteles (1):
      ACPI: x86: s2idle: Remove dead code in lps0_device_attach()

Huisong Li (8):
      ACPI: processor: idle: Optimize ACPI idle driver registration
      ACPI: processor: Remove unused empty stubs of some functions
      ACPI: processor: idle: Rearrange declarations in header file
      ACPI: processor: Do not expose global variable acpi_idle_driver
      ACPI: processor: idle: Add debug log for states with invalid entry methods
      ACPI: processor: idle: Convert
acpi_processor_setup_cpuidle_states() to void
      ACPI: processor: idle: Convert acpi_processor_setup_cpuidle_dev() to void
      ACPI: processor: idle: Rework the handling of
acpi_processor_ffh_lpi_probe()

Jakob Riemenschneider (1):
      ACPI: x86: s2idle: Invoke Microsoft _DSM Function 9 (Turn On Display)

Jose Marinho (2):
      ACPICA: Add GICv5 MADT structures
      ACPICA: Add Arm IORT IWB node definitions

Julia Lawall (1):
      ACPI: scan: Drop outdated comment regarding removed function

Kartik Rajput (1):
      ACPI: bus: Align acpi_device_get_match_data() with driver match order

Lorenzo Pieralisi (6):
      irqdomain: Add parent field to struct irqchip_fwid
      PCI/MSI: Make the pci_msi_map_rid_ctlr_node() interface firmware agnostic
      irqchip/gic-v5: Split IRS probing into OF and generic portions
      irqchip/gic-v5: Add ACPI IRS probing
      irqchip/gic-v5: Add ACPI ITS probing
      irqchip/gic-v5: Add ACPI IWB probing

Mauro Carvalho Chehab (4):
      APEI/GHES: ARM processor Error: don't go past allocated memory
      EFI/CPER: don't go past the ARM processor CPER record buffer
      APEI/GHES: ensure that won't go past CPER allocated record
      EFI/CPER: don't dump the entire memory region

Michal Camacho Romero (10):
      ACPICA: Add support for the new ACPI Table: DTPR
      ACPICA: Add DTPR table support for the ASL compiler
      ACPICA: Define DTPR structure related info tables and data template
      ACPICA: Create auxiliary ACPI_TPR_AUX_SR structure for iASL compiler
      ACPICA: Fix Segmentation Fault error related to DTPR
      ACPICA: Verify DTPR and TPR Instance buffer pointers
      ACPICA: Cleanup comments and DTPR Table handle functions
      ACPICA: Align comments in TPRn-related structures
      ACPICA: Replace TPRn Base and Limit registers
      ACPICA: Refactor for TPR Base/Limit registers bitmasks

Nathan Chancellor (1):
      ACPI: APEI: GHES: Disable KASAN instrumentation when compile
testing with clang < 18

Pawel Chmielewski (3):
      ACPICA: actbl2.h: ACPI 6.6: RAS2: Update Parameter Block structure
      ACPICA: actbl3.h: ACPI 6.6: SRAT: New flag in Memory Affinity Structure
      ACPICA: ACPI 6.6: Add _VDM (Voltage Domain) object

Rafael J. Wysocki (48):
      ACPI: PNP: Drop PNP0C01 and PNP0C02 from acpi_pnp_device_ids[]
      platform/x86/intel/hid: Stop creating a platform device
      platform/x86/intel/vbtn: Stop creating a platform device
      ACPI: PNP: Drop acpi_nonpnp_device_ids[]
      ACPI: PCI: PM: Rework root bus notification setup
      ACPI: PM: Register wakeup sources under physical devices
      ACPI: bus: Fix handling of _OSC errors in acpi_run_osc()
      ACPI: bus: Rework printing debug messages on _OSC errors
      ACPI: bus: Split _OSC evaluation out of acpi_run_osc()
      ACPI: bus: Split _OSC error processing out of acpi_run_osc()
      ACPI: bus: Rename label and use ACPI_FREE() in acpi_run_osc()
      ACPI: bus: Rework the handling of \_SB._OSC platform features
      ACPI: bus: Adjust feature mask creation for \_SB._OSC
      ACPI: bus: Rework the handling of \_SB._OSC USB4 features
      ACPI: NFIT: core: Convert the driver to a platform one
      ACPI: scan: Register platform devices for fixed event buttons
      ACPI: scan: Reduce code duplication related to fixed event devices
      ACPI: button: Adjust event notification routines
      ACPI: button: Convert the driver to a platform one
      ACPI: tiny-power-button: Convert the driver to a platform one
      ACPI: scan: Do not bind ACPI drivers to fixed event buttons
      ACPI: scan: Do not mark button ACPI devices as wakeup-capable
      ACPI: scan: Register platform devices for thermal zones
      ACPI: thermal: Adjust event notification routine
      ACPI: thermal: Convert the driver to a platform one
      ACPI: thermal: Rework system suspend and resume handling
      ACPI: battery: Adjust event notification routine
      ACPI: battery: Reduce code duplication related to cleanup
      ACPI: battery: Convert the driver to a platform one
      ACPI: HED: Convert the driver to a platform one
      ACPI: EC: Register a platform device for ECDT EC
      ACPI: EC: Convert the driver to a platform one
      ACPI: SMBUS HC: Convert the driver to a platform one
      ACPI: SBS: Convert the driver to a platform one
      ACPI: sysfs: Add device cid attribute for exposing _CID lists
      ACPI: bus: Adjust acpi_osc_handshake() parameter list
      ACPI: bus: Fix typo under sizeof() in acpi_run_osc()
      ACPI: scan: Use resource_type() for resource type checking
      ACPI: processor: Update cpuidle driver check in __acpi_processor_start()
      ACPI: processor: idle: Redefine two functions as void
      ACPI: scan: Register platform devices for backlight device objects
      ACPI: video: Adjust event notification routine
      ACPI: video: Convert the driver to a platform one
      ACPI: Documentation: driver-api: Disapprove of using ACPI drivers
      ACPI: PM: Let acpi_dev_pm_attach() skip devices without ACPI PM
      ACPI: scan: Use acpi_setup_gpe_for_wake() for buttons
      ACPI: scan: Clean up after recent changes
      ACPI: PM: Adjust messages regarding postponed ACPI PM

Saket Dumbre (1):
      ACPICA: Logfile: Changes for version 20251212

Shuai Xue (2):
      ACPI: APEI: GHES: Extract helper functions for error status handling
      ACPI: APEI: GHES: Improve ghes_notify_sea() status check

Sumeet Pawnikar (1):
      ACPI: sysfs: Replace sprintf() with sysfs_emit()

Sumit Gupta (2):
      ACPI: CPPC: Clean up cppc_perf_caps and cppc_perf_ctrls structs
      ACPI: CPPC: Rename EPP constants for clarity

Tony Luck (1):
      ACPI: APEI: GHES: Improve ghes_notify_nmi() status check

Tony W Wang-oc (1):
      ACPI: APEI: GHES: Add ghes_edac support for __ZX__ and _BYO_ systems

Tuo Li (1):
      ACPI: processor: Fix NULL-pointer dereference in
acpi_processor_errata_piix4()

Xianglai Li (1):
      ACPICA: iASL: Add definitions for the IOVT table

Yicong Yang (1):
      ACPI: scan: Use async schedule function in acpi_scan_clear_dep_fn()

Zilin Guan (1):
      ACPICA: ACPICA: replace ACPI_FREE() with acpi_ut_delete_object_desc()

---------------

 Documentation/driver-api/acpi/acpi-drivers.rst |  80 ++++
 Documentation/driver-api/acpi/index.rst        |   1 +
 drivers/acpi/Kconfig                           |   2 +
 drivers/acpi/acpi_extlog.c                     |  64 ++++
 drivers/acpi/acpi_platform.c                   |  40 +-
 drivers/acpi/acpi_pnp.c                        |  19 +-
 drivers/acpi/acpi_processor.c                  |  28 +-
 drivers/acpi/acpi_video.c                      |  62 ++--
 drivers/acpi/acpi_watchdog.c                   |   4 +-
 drivers/acpi/acpica/acpredef.h                 |   3 +
 drivers/acpi/acpica/evregion.c                 |   4 +-
 drivers/acpi/acpica/exoparg3.c                 |  53 ++-
 drivers/acpi/acpica/nsxfname.c                 |   2 +-
 drivers/acpi/acpica/utobject.c                 |   2 +-
 drivers/acpi/acpica/utosi.c                    |   6 +-
 drivers/acpi/apei/Makefile                     |   5 +
 drivers/acpi/apei/einj-core.c                  |   2 +-
 drivers/acpi/apei/ghes.c                       | 187 +++++++---
 drivers/acpi/apei/ghes_helpers.c               |  66 ++++
 drivers/acpi/arm64/iort.c                      | 193 ++++++++--
 drivers/acpi/battery.c                         |  80 ++--
 drivers/acpi/bus.c                             | 481 ++++++++++++++-----------
 drivers/acpi/button.c                          | 128 +++----
 drivers/acpi/cppc_acpi.c                       |   2 +-
 drivers/acpi/device_pm.c                       |  16 +-
 drivers/acpi/device_sysfs.c                    |  51 ++-
 drivers/acpi/ec.c                              |  54 +--
 drivers/acpi/hed.c                             |  23 +-
 drivers/acpi/nfit/core.c                       |  47 ++-
 drivers/acpi/pci_root.c                        |   2 +-
 drivers/acpi/pci_slot.c                        |  10 +-
 drivers/acpi/processor_driver.c                |  13 +-
 drivers/acpi/processor_idle.c                  | 158 ++++----
 drivers/acpi/resource.c                        |   8 +
 drivers/acpi/sbs.c                             |  48 ++-
 drivers/acpi/sbshc.c                           |  43 +--
 drivers/acpi/scan.c                            | 224 ++++++++----
 drivers/acpi/sysfs.c                           |  30 +-
 drivers/acpi/thermal.c                         |  90 ++---
 drivers/acpi/tiny-power-button.c               |  25 +-
 drivers/acpi/x86/s2idle.c                      |   9 +-
 drivers/cxl/core/ras.c                         |   3 +-
 drivers/firmware/efi/cper-arm.c                |  12 +-
 drivers/firmware/efi/cper.c                    |   8 +-
 drivers/irqchip/irq-gic-its-msi-parent.c       |  43 +--
 drivers/irqchip/irq-gic-v5-irs.c               | 227 +++++++++---
 drivers/irqchip/irq-gic-v5-its.c               | 132 ++++++-
 drivers/irqchip/irq-gic-v5-iwb.c               |  42 ++-
 drivers/irqchip/irq-gic-v5.c                   | 138 ++++++-
 drivers/pci/msi/irqdomain.c                    |  23 +-
 drivers/pci/pci-acpi.c                         |  15 +-
 drivers/pci/pcie/aer.c                         |   2 +-
 drivers/platform/x86/intel/hid.c               |  41 +--
 drivers/platform/x86/intel/vbtn.c              |  30 +-
 drivers/ras/ras.c                              |   6 +-
 include/acpi/acpixf.h                          |   2 +-
 include/acpi/actbl1.h                          | 257 +++++++++++++
 include/acpi/actbl2.h                          | 194 +++++++++-
 include/acpi/actbl3.h                          |   1 +
 include/acpi/acuuid.h                          |   6 +
 include/acpi/cppc_acpi.h                       |   6 +-
 include/acpi/ghes.h                            |   2 +
 include/acpi/processor.h                       |  34 +-
 include/cxl/event.h                            |  22 ++
 include/linux/acpi.h                           |   1 +
 include/linux/acpi_iort.h                      |  11 +-
 include/linux/cper.h                           |   3 +-
 include/linux/irqchip/arm-gic-v5.h             |   8 +
 include/linux/irqdomain.h                      |  30 +-
 include/linux/msi.h                            |   3 +-
 include/linux/pci-acpi.h                       |   3 +-
 kernel/irq/irqdomain.c                         |  14 +-
 72 files changed, 2573 insertions(+), 1111 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ