<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/acpi/arm64, branch master</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Merge tag 'acpi-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm</title>
<updated>2026-10-21T22:08:18+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-10-21T22:08:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4df4d2a577db2d3d57b888bcfb1206fc74661d16'/>
<id>4df4d2a577db2d3d57b888bcfb1206fc74661d16</id>
<content type='text'>
Pull ACPI support updates from Rafael Wysocki:
 "The most significant change here is the rework of the core ACPI device
  enumeration code to avoid initializing ACPI power management
  prematurely for devices with unmet dependencies. This essentially is a
  problem fix, but it requires taking PCI device enumeration ordering
  into account among other things, so it is far from straightforward.
  There was an attempt to do this in the 7.3 time frame that had to be
  reverted, so this time it is done much more carefully.

  There is also an ACPI thermal control update rearranging the code to
  register thermal class cooling devices under specific parents, which
  is visible in sysfs. This helps to figure out what is represented by
  those devices much more easily, but it also allows the binding of
  cooling devices to trip points in thermal zones to be adjusted so it
  need not rely on specific cooling device data usage in thermal
  drivers.

  From the number of commits perspective, the most visible part is the
  one replacing acpi_get_first_physical_node() with
  acpi_bus_get_primary_device() everywhere and dropping the former that
  was inherently racy and generally unsafe to use. Fortunately, the
  maintainers involved responded timely and all of that could be done
  within one development cycle.

  Another quite visible part is Dave Jiang's series fixing multiple
  issues reported by Sashiko in the ACPI APEI support code with a PCI
  AER improvement on top. It took several iterations of this to make
  Sashiko happy and the code in question should be much more robust
  going forward.

  One other thing worth mentioning separately is that the ACPI bus type
  is now going to be registered as a "companion" one and it will not be
  possible to register a driver binding directly to a struct
  acpi_device. All of the existing users of those drivers in the tree
  were converted to platform drivers in the previous cycles, so this is
  just a final step in a longer journey.

  Apart from the above, there are many fixes, mostly in drivers, with a
  noticeable exception of a fix in the code binding devices to their
  ACPI companions, new IOVT IOMMU support in ACPICA, new _Ixx object
  support for suspend-to-idle on x86, multiple new quirks, mostly
  related to unused ACPI power resources and backlight handling, and
  assorted cleanups.

  Specifics:

   - Make the core ACPI device enumeration code stop attempting to
     initialize ACPI power management for devices before they are known
     to be present and functional (Rafael Wysocki)

   - Simplify and clean up the core ACPI device enumeration code on top
     of the previous adjustment and reduce debug noise coming from it
     (Rafael Wysocki)

   - Fix locking in the code binding devices to their ACPI companions,
     prevent it from replacing a valid ACPI companion pointer with NULL
     incidentally, improve its messaging (including debug noise
     reduction), and reduce its overhead by making it skip the cases in
     which no ACPI companion may exist early (Rafael Wysocki)

   - Reduce runtime memory footprint of struct acpi_device by
     rearranging fields in it (Andy Shevchenko)

   - Update the driver core to allow bus types without drivers to be
     registered as "companion bus types" without driver-related sysfs
     attributes and register the ACPI bus type as a companion one
     (Rafael Wysocki)

   - Use strscpy() instead of strcpy() in the ACPI sysfs interface
     (Ruslan Vagner)

   - Remove __meminitdata from hmat_adist_nb declaration preserving it
     even when CONFIG_MEMORY_HOTPLUG is not set to prevent notifier
     chain corruption in some cases (Alejandro Lucero)

   - Prevent a NULL pointer dereference when attempting to read the
     table length after a mapping bookkeeping failure during an initrd
     override invocation with permanent table mappings enabled (Slavin
     Liu)

   - Use for_each_populated_zone() in get_node_num() in the MRRM table
     pareser (Sang-Heon Jeon)

   - Use vsnprintf() in acpi_os_vprintf() to prevent memory corruption
     resulting from overly long diagnostic messages that may not fit
     into a static buffer used by ACPICA and may be produced by a
     malformed ACPI table (Vlatko Kosturjak)

   - Ignore leading root scope prefix in string _UID match to allow AMD
     IOMMU matching to work as expected in some cases (Mario
     Limonciello)

   - Adjust message printing macros for ACPI objects to use dev_fmt()
     for more consistency with the analogous dev_*() macros (Rafael
     Wysocki)

   - Add _Ixx GPE wake indicator support to the x86 suspend-to-idle
     handling code (Saranya Gopal)

   - Clear driver_data before free in the ACPI PCI Link driver to
     prevent a dangling pointer from being used later (Jiale Yao)

   - Accumulate the queued flag across error sections of a CPER record
     in ghes_do_proc() to prevent it from being cleared by a later
     section or entry that does not queue memory-failure work (Breno
     Leitao)

   - Map a raw PCI AER Capability image field by field to prevent
     information loss from occurring while processing it (Dave Jiang)

   - Update a stale driver source reference in the ACPI APEI EINJ driver
     documentation (Prabhakar Pujeri)

   - Reject CPER records with an out-of-range error_data_length or an
     error status block length wrapping a u32 in the EFI CPER driver
     (Dave Jiang)

   - Address multiple assorted issues in the ACPI extlog driver (Dave
     Jiang)

   - Address two issues related to CXL in the ACPI APEI GHES driver
     (Dave Jiang)

   - Read only validated fields in cper_mem_err_pack() (Dave Jiang)

   - Validate memory error section length before payload access, prevent
     writes past array bounds from occurring and sanitize software
     metadata in the ACPI APEI GHES driver (Dave Jiang)

   - Make cxl_cper_handle_prot_err() static (Dave Jiang)

   - Add IOVT IOMMU support to ACPICA (Bibo Mao)

   - Fix PCC OperationRegion command offsets in ACPICA (Sudeep Holla)

   - Fix memory leak in acpi_ds_create_field() related to the handling
     of internal_pcc_buffer allocations (Breno Leitao)

   - Fix memory leak due to leftover devm_kcalloc() argument in the ACPI
     fan driver (Rafael Wysocki)

   - Fix backlight unregistration ordering in the ACPI video bus device
     driver (Rafael Wysocki)

   - Update the thermal core to allow the registration of thermal class
     cooling devices under specific parents and convert the ACPI fan,
     ACPI processor, and ACPI video bus device drivers to do so (Rafael
     Wysocki)

   - Adjust the ACPI thermal zone driver to use thermal class cooling
     device parent information for binding cooling devices to trip
     points in thermal zones (Rafael Wysocki)

   - Use cooling device data that is a better match for a given driver
     instead of a struct acpi_device pointer that had to be used for
     this purpose previously in the ACPI fan and processor drivers
     (Rafael Wysocki)

   - Fix acpi_thermal_guess_offset() in the ACPI thermal zone driver for
     thermal zone devices with a 273.0°K offset (Hans de Goede)

   - Define a free for ACPI objects allocated by ACPICA helpers and use
     it to simplify AML error handling in the ACPI fan driver (Rafael
     Wysocki)

   - Switch over the users of acpi_get_first_physical_node(), that was
     inherently racy and therefore not really safe to use, to use its
     replacement acpi_bus_get_primary_device(), and eliminate the former
     (Rafael Wysocki)

   - Add !CONFIG_ACPI stubs for acpi_find_child_device() and
     acpi_device_uid() (Mario Limonciello and Robin Murphy)

   - Fix bogus cycle count values on systems without _BIX in the ACPI
     battery driver (Armin Wolf)

   - Fix NULL pointer dereference on allocation failure and report
     relative state of charge as CAPACITY in the ACPI SBS driver (Itay
     Shem-tov and Guangshuo Li)

   - Add lid_init_state quirk for Razer Blade Stealth 13 (Early 2020)
     RZ09-0310 to the ACPI button driver (Ian Gallagher)

   - Add new quirks to force the native backlight on Dell OptiPlex AIO
     7410 35W and Acer Nitro AN515-58 in the ACPI video bus device
     driver (Chitransh Mandhaniya and Dirga Yuza)

   - Fix the shared memory signature handling in the ACPI PCC address
     space handler, free the PCC mailbox channel on operation region
     deactivation, and avoid unnecessary repeated computations of the
     PCC operation region command timeout (Sudeep Holla)

   - Fix a log message typo in the ACPI NUMA support code (Hemanth
     Selam)

   - Zero-initialize capability query result in the ACPI Platform
     Firmware Runtime Update and Telemetry driver to avoid disclosure of
     kernel stack data to user space (Karl Mehltretter)

   - Replace the remaining built-in/module check for CONFIG_ACPI_WMI in
     a header file with IS_ENABLED() macro (Lalit Shankar Chowdhury)

   - Retry probing battery docks after hotplug in the ACPI docking
     station driver to avoid missing ACPI add notifications (Vibhor
     Goel)

   - Detach device after resource transition failure in
     pnp_device_probe() to avoid blocking later manual PNP configuration
     attempts (Myeonghun Pak)"

* tag 'acpi-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (90 commits)
  ACPI: PM: Add Acer Aspire A515-53G to dmi_leave_unused_power_resources_on[]
  ACPI: video: force native backlight on Dell OptiPlex AIO 7410 35W
  ACPI: PM: sleep: Drop unused sleep_no_lps0 define
  ACPI: PM: Add unused power resource quirk for Casper Excalibur G900
  ACPI: dock: Retry probing battery docks after hotplug
  ACPI: PCI: pci_link: clear driver_data before free
  ACPI: APEI: accumulate the queued flag across error sections
  ACPICA: actbl2.h: Add bit constants of the Flags field in the IOVT IOMMU structure
  ACPI: bus: Drop acpi_get_first_physical_node()
  efi/dev-path-parser: Switch to use acpi_bus_get_primary_device()
  ALSA: hda: tas2781: Switch to use acpi_bus_get_primary_device()
  ALSA: hda: cs35l41: Switch to use acpi_bus_get_primary_device()
  iommu/arm-smmu-v3: Switch to use acpi_bus_get_primary_device()
  PCI/AER: Map a raw AER Capability image field by field
  ACPI: NUMA: fix typo in log message
  ACPI: Add stub for acpi_find_child_device()
  driver core/ACPI: Introduce companion_bus_register()
  ACPI: PCC: Cache OpRegion command timeout
  ACPI: PCC: Free channel on OpRegion deactivation
  ACPI: PCC: Preserve shared memory signature in OpRegion handler
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull ACPI support updates from Rafael Wysocki:
 "The most significant change here is the rework of the core ACPI device
  enumeration code to avoid initializing ACPI power management
  prematurely for devices with unmet dependencies. This essentially is a
  problem fix, but it requires taking PCI device enumeration ordering
  into account among other things, so it is far from straightforward.
  There was an attempt to do this in the 7.3 time frame that had to be
  reverted, so this time it is done much more carefully.

  There is also an ACPI thermal control update rearranging the code to
  register thermal class cooling devices under specific parents, which
  is visible in sysfs. This helps to figure out what is represented by
  those devices much more easily, but it also allows the binding of
  cooling devices to trip points in thermal zones to be adjusted so it
  need not rely on specific cooling device data usage in thermal
  drivers.

  From the number of commits perspective, the most visible part is the
  one replacing acpi_get_first_physical_node() with
  acpi_bus_get_primary_device() everywhere and dropping the former that
  was inherently racy and generally unsafe to use. Fortunately, the
  maintainers involved responded timely and all of that could be done
  within one development cycle.

  Another quite visible part is Dave Jiang's series fixing multiple
  issues reported by Sashiko in the ACPI APEI support code with a PCI
  AER improvement on top. It took several iterations of this to make
  Sashiko happy and the code in question should be much more robust
  going forward.

  One other thing worth mentioning separately is that the ACPI bus type
  is now going to be registered as a "companion" one and it will not be
  possible to register a driver binding directly to a struct
  acpi_device. All of the existing users of those drivers in the tree
  were converted to platform drivers in the previous cycles, so this is
  just a final step in a longer journey.

  Apart from the above, there are many fixes, mostly in drivers, with a
  noticeable exception of a fix in the code binding devices to their
  ACPI companions, new IOVT IOMMU support in ACPICA, new _Ixx object
  support for suspend-to-idle on x86, multiple new quirks, mostly
  related to unused ACPI power resources and backlight handling, and
  assorted cleanups.

  Specifics:

   - Make the core ACPI device enumeration code stop attempting to
     initialize ACPI power management for devices before they are known
     to be present and functional (Rafael Wysocki)

   - Simplify and clean up the core ACPI device enumeration code on top
     of the previous adjustment and reduce debug noise coming from it
     (Rafael Wysocki)

   - Fix locking in the code binding devices to their ACPI companions,
     prevent it from replacing a valid ACPI companion pointer with NULL
     incidentally, improve its messaging (including debug noise
     reduction), and reduce its overhead by making it skip the cases in
     which no ACPI companion may exist early (Rafael Wysocki)

   - Reduce runtime memory footprint of struct acpi_device by
     rearranging fields in it (Andy Shevchenko)

   - Update the driver core to allow bus types without drivers to be
     registered as "companion bus types" without driver-related sysfs
     attributes and register the ACPI bus type as a companion one
     (Rafael Wysocki)

   - Use strscpy() instead of strcpy() in the ACPI sysfs interface
     (Ruslan Vagner)

   - Remove __meminitdata from hmat_adist_nb declaration preserving it
     even when CONFIG_MEMORY_HOTPLUG is not set to prevent notifier
     chain corruption in some cases (Alejandro Lucero)

   - Prevent a NULL pointer dereference when attempting to read the
     table length after a mapping bookkeeping failure during an initrd
     override invocation with permanent table mappings enabled (Slavin
     Liu)

   - Use for_each_populated_zone() in get_node_num() in the MRRM table
     pareser (Sang-Heon Jeon)

   - Use vsnprintf() in acpi_os_vprintf() to prevent memory corruption
     resulting from overly long diagnostic messages that may not fit
     into a static buffer used by ACPICA and may be produced by a
     malformed ACPI table (Vlatko Kosturjak)

   - Ignore leading root scope prefix in string _UID match to allow AMD
     IOMMU matching to work as expected in some cases (Mario
     Limonciello)

   - Adjust message printing macros for ACPI objects to use dev_fmt()
     for more consistency with the analogous dev_*() macros (Rafael
     Wysocki)

   - Add _Ixx GPE wake indicator support to the x86 suspend-to-idle
     handling code (Saranya Gopal)

   - Clear driver_data before free in the ACPI PCI Link driver to
     prevent a dangling pointer from being used later (Jiale Yao)

   - Accumulate the queued flag across error sections of a CPER record
     in ghes_do_proc() to prevent it from being cleared by a later
     section or entry that does not queue memory-failure work (Breno
     Leitao)

   - Map a raw PCI AER Capability image field by field to prevent
     information loss from occurring while processing it (Dave Jiang)

   - Update a stale driver source reference in the ACPI APEI EINJ driver
     documentation (Prabhakar Pujeri)

   - Reject CPER records with an out-of-range error_data_length or an
     error status block length wrapping a u32 in the EFI CPER driver
     (Dave Jiang)

   - Address multiple assorted issues in the ACPI extlog driver (Dave
     Jiang)

   - Address two issues related to CXL in the ACPI APEI GHES driver
     (Dave Jiang)

   - Read only validated fields in cper_mem_err_pack() (Dave Jiang)

   - Validate memory error section length before payload access, prevent
     writes past array bounds from occurring and sanitize software
     metadata in the ACPI APEI GHES driver (Dave Jiang)

   - Make cxl_cper_handle_prot_err() static (Dave Jiang)

   - Add IOVT IOMMU support to ACPICA (Bibo Mao)

   - Fix PCC OperationRegion command offsets in ACPICA (Sudeep Holla)

   - Fix memory leak in acpi_ds_create_field() related to the handling
     of internal_pcc_buffer allocations (Breno Leitao)

   - Fix memory leak due to leftover devm_kcalloc() argument in the ACPI
     fan driver (Rafael Wysocki)

   - Fix backlight unregistration ordering in the ACPI video bus device
     driver (Rafael Wysocki)

   - Update the thermal core to allow the registration of thermal class
     cooling devices under specific parents and convert the ACPI fan,
     ACPI processor, and ACPI video bus device drivers to do so (Rafael
     Wysocki)

   - Adjust the ACPI thermal zone driver to use thermal class cooling
     device parent information for binding cooling devices to trip
     points in thermal zones (Rafael Wysocki)

   - Use cooling device data that is a better match for a given driver
     instead of a struct acpi_device pointer that had to be used for
     this purpose previously in the ACPI fan and processor drivers
     (Rafael Wysocki)

   - Fix acpi_thermal_guess_offset() in the ACPI thermal zone driver for
     thermal zone devices with a 273.0°K offset (Hans de Goede)

   - Define a free for ACPI objects allocated by ACPICA helpers and use
     it to simplify AML error handling in the ACPI fan driver (Rafael
     Wysocki)

   - Switch over the users of acpi_get_first_physical_node(), that was
     inherently racy and therefore not really safe to use, to use its
     replacement acpi_bus_get_primary_device(), and eliminate the former
     (Rafael Wysocki)

   - Add !CONFIG_ACPI stubs for acpi_find_child_device() and
     acpi_device_uid() (Mario Limonciello and Robin Murphy)

   - Fix bogus cycle count values on systems without _BIX in the ACPI
     battery driver (Armin Wolf)

   - Fix NULL pointer dereference on allocation failure and report
     relative state of charge as CAPACITY in the ACPI SBS driver (Itay
     Shem-tov and Guangshuo Li)

   - Add lid_init_state quirk for Razer Blade Stealth 13 (Early 2020)
     RZ09-0310 to the ACPI button driver (Ian Gallagher)

   - Add new quirks to force the native backlight on Dell OptiPlex AIO
     7410 35W and Acer Nitro AN515-58 in the ACPI video bus device
     driver (Chitransh Mandhaniya and Dirga Yuza)

   - Fix the shared memory signature handling in the ACPI PCC address
     space handler, free the PCC mailbox channel on operation region
     deactivation, and avoid unnecessary repeated computations of the
     PCC operation region command timeout (Sudeep Holla)

   - Fix a log message typo in the ACPI NUMA support code (Hemanth
     Selam)

   - Zero-initialize capability query result in the ACPI Platform
     Firmware Runtime Update and Telemetry driver to avoid disclosure of
     kernel stack data to user space (Karl Mehltretter)

   - Replace the remaining built-in/module check for CONFIG_ACPI_WMI in
     a header file with IS_ENABLED() macro (Lalit Shankar Chowdhury)

   - Retry probing battery docks after hotplug in the ACPI docking
     station driver to avoid missing ACPI add notifications (Vibhor
     Goel)

   - Detach device after resource transition failure in
     pnp_device_probe() to avoid blocking later manual PNP configuration
     attempts (Myeonghun Pak)"

* tag 'acpi-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (90 commits)
  ACPI: PM: Add Acer Aspire A515-53G to dmi_leave_unused_power_resources_on[]
  ACPI: video: force native backlight on Dell OptiPlex AIO 7410 35W
  ACPI: PM: sleep: Drop unused sleep_no_lps0 define
  ACPI: PM: Add unused power resource quirk for Casper Excalibur G900
  ACPI: dock: Retry probing battery docks after hotplug
  ACPI: PCI: pci_link: clear driver_data before free
  ACPI: APEI: accumulate the queued flag across error sections
  ACPICA: actbl2.h: Add bit constants of the Flags field in the IOVT IOMMU structure
  ACPI: bus: Drop acpi_get_first_physical_node()
  efi/dev-path-parser: Switch to use acpi_bus_get_primary_device()
  ALSA: hda: tas2781: Switch to use acpi_bus_get_primary_device()
  ALSA: hda: cs35l41: Switch to use acpi_bus_get_primary_device()
  iommu/arm-smmu-v3: Switch to use acpi_bus_get_primary_device()
  PCI/AER: Map a raw AER Capability image field by field
  ACPI: NUMA: fix typo in log message
  ACPI: Add stub for acpi_find_child_device()
  driver core/ACPI: Introduce companion_bus_register()
  ACPI: PCC: Cache OpRegion command timeout
  ACPI: PCC: Free channel on OpRegion deactivation
  ACPI: PCC: Preserve shared memory signature in OpRegion handler
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>arm_mpam: add MPAM-Fb MSC firmware access support</title>
<updated>2026-10-02T17:22:55+00:00</updated>
<author>
<name>Andre Przywara</name>
<email>andre.przywara@arm.com</email>
</author>
<published>2026-10-01T15:34:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0ef7c5eb77c6cf57582bda2b96a845bdd9e8c9d2'/>
<id>0ef7c5eb77c6cf57582bda2b96a845bdd9e8c9d2</id>
<content type='text'>
The Arm MPAM Firmware-backed (Fb) Profile document[1] describes an
alternative way of accessing the "Memory System Components" (MSC) in an
MPAM enabled system.

Normally the MSCs are MMIO mapped, but in some implementations this
might not be possible (MSC located outside of the local socket, MSC
mapped secure-only) or desirable (direct MMIO access too slow or needs
to be mediated through a control processor). MPAM-fb standardises a
protocol to abstract MSC accesses, building on the SCMI protocol.

Add functions that do an MSC read or write access by redirecting the
request through a firmware interface. For now this done via an ACPI
PCC shared memory and mailbox combination.

Since the protocol used is only a small subset of the full SCMI spec,
and the SCMI protocol has no full ACPI support anyway, open-code the
(simple) SCMI message generation, for just the fields we need.

[1] https://developer.arm.com/documentation/den0144/latest

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Jonathan Cameron &lt;jonathan.cameron@oss.qualcomm.com&gt;
Tested-by: Ritwick Sharma &lt;ritwick.sharma@arm.com&gt; # on Arm AGI CPU
Reviewed-by: Gavin Shan &lt;gshan@redhat.com&gt;
Reviewed-by: Srivathsa L Rao &lt;srivathsa.rao@oss.qualcomm.com&gt;
Reviewed-by: Ben Horgan &lt;ben.horgan@arm.com&gt;
Signed-off-by: James Morse &lt;james.morse@arm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Arm MPAM Firmware-backed (Fb) Profile document[1] describes an
alternative way of accessing the "Memory System Components" (MSC) in an
MPAM enabled system.

Normally the MSCs are MMIO mapped, but in some implementations this
might not be possible (MSC located outside of the local socket, MSC
mapped secure-only) or desirable (direct MMIO access too slow or needs
to be mediated through a control processor). MPAM-fb standardises a
protocol to abstract MSC accesses, building on the SCMI protocol.

Add functions that do an MSC read or write access by redirecting the
request through a firmware interface. For now this done via an ACPI
PCC shared memory and mailbox combination.

Since the protocol used is only a small subset of the full SCMI spec,
and the SCMI protocol has no full ACPI support anyway, open-code the
(simple) SCMI message generation, for just the fields we need.

[1] https://developer.arm.com/documentation/den0144/latest

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Jonathan Cameron &lt;jonathan.cameron@oss.qualcomm.com&gt;
Tested-by: Ritwick Sharma &lt;ritwick.sharma@arm.com&gt; # on Arm AGI CPU
Reviewed-by: Gavin Shan &lt;gshan@redhat.com&gt;
Reviewed-by: Srivathsa L Rao &lt;srivathsa.rao@oss.qualcomm.com&gt;
Reviewed-by: Ben Horgan &lt;ben.horgan@arm.com&gt;
Signed-off-by: James Morse &lt;james.morse@arm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI: amba: Switch to use acpi_bus_get_primary_device()</title>
<updated>2026-09-22T16:45:17+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2026-09-21T19:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=28bfd74601a4ac16310b0797c24e6220108c58d1'/>
<id>28bfd74601a4ac16310b0797c24e6220108c58d1</id>
<content type='text'>
Replace acpi_get_first_physical_node() that is slated for removal
with acpi_bus_get_primary_device() that takes a reference to the
device it is about to return.

This addresses a potential use-after-free that may occur if the
device returned by acpi_get_first_physical_node() is removed right
after dropping its ACPI companion's physical_node_lock in that
function.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Reviewed-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/3362405.5fSG56mABF@rafael.j.wysocki
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace acpi_get_first_physical_node() that is slated for removal
with acpi_bus_get_primary_device() that takes a reference to the
device it is about to return.

This addresses a potential use-after-free that may occur if the
device returned by acpi_get_first_physical_node() is removed right
after dropping its ACPI companion's physical_node_lock in that
function.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Reviewed-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/3362405.5fSG56mABF@rafael.j.wysocki
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core</title>
<updated>2026-08-19T17:42:18+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-08-19T17:42:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=59e6295fac26b8e85c1ea859cdd89fa1e47519d7'/>
<id>59e6295fac26b8e85c1ea859cdd89fa1e47519d7</id>
<content type='text'>
Pull driver core updates from Danilo Krummrich:
 "container_of:

   - Apply typeof_member(), remove the local __mptr variable to
     eliminate variable shadowing warnings on nested container_of()
     calls, and remove unnecessary parentheses

  core:

   - Add driver name to probe debug print for initcall_debug

   - Avoid repeatedly printing the same 'Fixed dependency cycle' log

   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device()

   - Remove statistics group if encryption group creation fails in
     transport_add_class_device()

  debugfs:

   - Fix lockdown check for mmap_prepare()

   - Warn if file creation failed due to uninitialized debugfs

  device property:

   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from
     DEV_PROP_REF properties to enable automatic probe ordering. Add
     kunit-managed fwnode helpers and test coverage

   - Fix infinite loop in fwnode_for_each_child_node() when the
     secondary fwnode has more than one child. Add test cases

   - Fix out-of-bounds access in software_node_get_reference_args() when
     called with index -1 (UINT_MAX)

   - Refactor to use RAII approach with __free()

   - Add Bartosz Golaszewski as software node reviewer

  firmware loader:

   - Fix race where a sysfs fallback request can complete before being
     queued as pending, leading to a use-after-free on the next fallback
     request

   - Reject 0-size built-in firmware and fail the build on empty
     firmware files in CONFIG_EXTRA_FIRMWARE

  kobject:

   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros
     and allow the constification of kobject attributes, enabling them
     to reside in read-only memory

  platform:

   - Provide platform_device_set_of_node(), platform_device_set_fwnode(),
     and platform_device_set_of_node_from_dev() helpers that encapsulate
     firmware node reference counting for dynamically allocated platform
     devices

     Convert all in-tree users that manually assigned dev.of_node or
     dev.fwnode, fixing a pre-existing refcount bug in powermac. Switch
     to counting references of all firmware node types, not only OF
     nodes

   - Unify the release path for dynamically allocated platform devices
     by removing platform_device_release_full(). Amend the fwnode setter
     API contract to warn if a primary software node is overwritten. Add
     KUnit tests for correct software node removal on device
     unregistration

  Rust:

   - Auxiliary:
       - Add registration_data_with() closure-based API for invariant
         ForLt types

   - Debugfs:
       - Migrate BinaryWriter and BinaryReaderMut trait requirements
         from kernel::transmute traits to zerocopy traits

   - Device:
       - Add BoundInternal device context and InternalBoundContext trait
         for bus abstractions that need internal access to a bound
         device.
       - Make the lifetime on Core and CoreInternal invariant to prevent
         coercion to shorter lifetimes

   - Devres:
       - Fix race between concurrent revokers where the losing revoker
         could return before the winning revoker finished dropping the
         inner data, causing use-after-free.
       - Ensure revocation is complete before the device finishes
         unbinding by making the synchronization bidirectional.
       - Add DevresLt&lt;F: ForLt&gt;, a wrapper around Devres that shortens
         'static back to the caller's borrow scope. Implement ForLt and
         CovariantForLt for Bar, IoMem, and ExclusiveIoMem

   - Driver:
       - Switch from index-based to pointer-based device ID info lookup,
         storing static references in driver_data. Centralize device ID
         handling in device_id.rs, removing the open-coded ACPI/OF
         matching logic and duplicate ID table from driver.rs

   - I/O:
       - Make I/O regions typed (with a dynamically-sized Region type
         for the existing untyped case), create view types representing
         subregions of a mapped I/O region, and add io_project!() for
         safely creating subviews.
       - Split Io into a base trait (IoBase) and an extension trait (Io)
         with a blanket implementation, preventing implementers from
         overriding provided methods that unsafe code relies on.
       - Add a SysMem backend for shared system memory with volatile
         access, and make Coherent implement Io via an I/O view type.
         Add IoSysMap as sum type of Mmio and SysMem. Add copying
         methods (memcpy_{from,to}io()) and read_val()/write_val() for
         typed access.
       - Replace dma_read!()/dma_write!() with io_read!()/io_write!()
         for primitives and copying methods for aggregates; drop the old
         macros. Convert nova-core to use I/O projection.
       - Fix internal shortcut rule dispatch in the register!() macro,
         remove unused rule arguments, and use path fragments for alias
         destinations

   - IRQ:
       - Make irq::Registration compatible with lifetime-bound drivers
         by removing the 'static bound on Handler/ThreadedHandler and
         replacing Devres&lt;RegistrationInner&gt; with direct
         request_irq()/free_irq() calls. Handlers can now directly own
         lifetime-bound device resources

   - PCI:
       - Convert IrqVectorRegistration to a lifetime-annotated owning
         type, giving drivers explicit control over the allocation
         lifetime. IrqVector embeds a resolved IrqRequest, making the
         conversion infallible. Remove the redundant
         request_irq()/request_threaded_irq() wrappers from pci::Device.
       - Add pci_irq_type() C helper and expose it via irq_type() on
         IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX,
         PCI_IRQ_MSI, or PCI_IRQ_INTX.
       - Mark pci::Device refcount methods inline

   - Serdev:
       - Add Rust abstractions for the serial device bus, including
         serdev::Driver trait, serdev::Device wrapping struct
         serdev_device, and serdev::Adapter implementing
         RegistrationOps. Includes a sample driver. Markus Probst takes
         over as serdev maintainer for both C and Rust code

   - Misc:
       - Split ForLt into a base trait (providing the Of&lt;'a&gt; GAT) and an
         unsafe CovariantForLt subtrait guaranteeing covariance,
         enabling invariant types (e.g. those containing Mutex&lt;&amp;'bound T&gt;)
         to participate in the ForLt abstraction.
       - Fix Coherent read past EOF returning -ERANGE instead of zero.
       - Fix firmware example UB by avoiding null-pointer ARef

  misc:
   - Avoid iattr allocation in kernfs listxattr by using
     kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark
     internal property data as private for kernel-doc, and add
     property.h/fwnode.h to driver-api infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h"

* tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (129 commits)
  rust: pci: expose the allocated interrupt type
  PCI: Add pci_irq_type() to query the allocated interrupt type
  rust: pci: remove request_irq() and request_threaded_irq() from Device
  rust: pci: resolve IRQ in index() and embed IrqRequest in IrqVector
  rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type
  kernfs: avoid iattr allocation in listxattr
  rust: serdev: use ThisModule::as_ptr() instead of field access
  ACPI/IORT: use platform_device_set_fwnode()
  ACPI/APMT: use platform_device_set_fwnode()
  firmware_loader: do not queue completed sysfs fallback requests
  rust: pci: Mark Device refcount methods inline
  rust: irq: make Registration compatible with lifetime-bound drivers
  rust: net/phy: remove expansion from doc
  rust: dma: return zero for Coherent reads past EOF
  rust: io: register: use path fragment for alias destination
  rust: io: register: remove unused rule arguments
  rust: io: register: dispatch shortcut rules internally
  MAINTAINERS: add sys_soc.h to DRIVER CORE
  rust: debugfs: remove unsafe blocks from traits impl for Vec
  rust: debugfs: migrate debugfs traits requirements to zerocopy
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull driver core updates from Danilo Krummrich:
 "container_of:

   - Apply typeof_member(), remove the local __mptr variable to
     eliminate variable shadowing warnings on nested container_of()
     calls, and remove unnecessary parentheses

  core:

   - Add driver name to probe debug print for initcall_debug

   - Avoid repeatedly printing the same 'Fixed dependency cycle' log

   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device()

   - Remove statistics group if encryption group creation fails in
     transport_add_class_device()

  debugfs:

   - Fix lockdown check for mmap_prepare()

   - Warn if file creation failed due to uninitialized debugfs

  device property:

   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from
     DEV_PROP_REF properties to enable automatic probe ordering. Add
     kunit-managed fwnode helpers and test coverage

   - Fix infinite loop in fwnode_for_each_child_node() when the
     secondary fwnode has more than one child. Add test cases

   - Fix out-of-bounds access in software_node_get_reference_args() when
     called with index -1 (UINT_MAX)

   - Refactor to use RAII approach with __free()

   - Add Bartosz Golaszewski as software node reviewer

  firmware loader:

   - Fix race where a sysfs fallback request can complete before being
     queued as pending, leading to a use-after-free on the next fallback
     request

   - Reject 0-size built-in firmware and fail the build on empty
     firmware files in CONFIG_EXTRA_FIRMWARE

  kobject:

   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros
     and allow the constification of kobject attributes, enabling them
     to reside in read-only memory

  platform:

   - Provide platform_device_set_of_node(), platform_device_set_fwnode(),
     and platform_device_set_of_node_from_dev() helpers that encapsulate
     firmware node reference counting for dynamically allocated platform
     devices

     Convert all in-tree users that manually assigned dev.of_node or
     dev.fwnode, fixing a pre-existing refcount bug in powermac. Switch
     to counting references of all firmware node types, not only OF
     nodes

   - Unify the release path for dynamically allocated platform devices
     by removing platform_device_release_full(). Amend the fwnode setter
     API contract to warn if a primary software node is overwritten. Add
     KUnit tests for correct software node removal on device
     unregistration

  Rust:

   - Auxiliary:
       - Add registration_data_with() closure-based API for invariant
         ForLt types

   - Debugfs:
       - Migrate BinaryWriter and BinaryReaderMut trait requirements
         from kernel::transmute traits to zerocopy traits

   - Device:
       - Add BoundInternal device context and InternalBoundContext trait
         for bus abstractions that need internal access to a bound
         device.
       - Make the lifetime on Core and CoreInternal invariant to prevent
         coercion to shorter lifetimes

   - Devres:
       - Fix race between concurrent revokers where the losing revoker
         could return before the winning revoker finished dropping the
         inner data, causing use-after-free.
       - Ensure revocation is complete before the device finishes
         unbinding by making the synchronization bidirectional.
       - Add DevresLt&lt;F: ForLt&gt;, a wrapper around Devres that shortens
         'static back to the caller's borrow scope. Implement ForLt and
         CovariantForLt for Bar, IoMem, and ExclusiveIoMem

   - Driver:
       - Switch from index-based to pointer-based device ID info lookup,
         storing static references in driver_data. Centralize device ID
         handling in device_id.rs, removing the open-coded ACPI/OF
         matching logic and duplicate ID table from driver.rs

   - I/O:
       - Make I/O regions typed (with a dynamically-sized Region type
         for the existing untyped case), create view types representing
         subregions of a mapped I/O region, and add io_project!() for
         safely creating subviews.
       - Split Io into a base trait (IoBase) and an extension trait (Io)
         with a blanket implementation, preventing implementers from
         overriding provided methods that unsafe code relies on.
       - Add a SysMem backend for shared system memory with volatile
         access, and make Coherent implement Io via an I/O view type.
         Add IoSysMap as sum type of Mmio and SysMem. Add copying
         methods (memcpy_{from,to}io()) and read_val()/write_val() for
         typed access.
       - Replace dma_read!()/dma_write!() with io_read!()/io_write!()
         for primitives and copying methods for aggregates; drop the old
         macros. Convert nova-core to use I/O projection.
       - Fix internal shortcut rule dispatch in the register!() macro,
         remove unused rule arguments, and use path fragments for alias
         destinations

   - IRQ:
       - Make irq::Registration compatible with lifetime-bound drivers
         by removing the 'static bound on Handler/ThreadedHandler and
         replacing Devres&lt;RegistrationInner&gt; with direct
         request_irq()/free_irq() calls. Handlers can now directly own
         lifetime-bound device resources

   - PCI:
       - Convert IrqVectorRegistration to a lifetime-annotated owning
         type, giving drivers explicit control over the allocation
         lifetime. IrqVector embeds a resolved IrqRequest, making the
         conversion infallible. Remove the redundant
         request_irq()/request_threaded_irq() wrappers from pci::Device.
       - Add pci_irq_type() C helper and expose it via irq_type() on
         IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX,
         PCI_IRQ_MSI, or PCI_IRQ_INTX.
       - Mark pci::Device refcount methods inline

   - Serdev:
       - Add Rust abstractions for the serial device bus, including
         serdev::Driver trait, serdev::Device wrapping struct
         serdev_device, and serdev::Adapter implementing
         RegistrationOps. Includes a sample driver. Markus Probst takes
         over as serdev maintainer for both C and Rust code

   - Misc:
       - Split ForLt into a base trait (providing the Of&lt;'a&gt; GAT) and an
         unsafe CovariantForLt subtrait guaranteeing covariance,
         enabling invariant types (e.g. those containing Mutex&lt;&amp;'bound T&gt;)
         to participate in the ForLt abstraction.
       - Fix Coherent read past EOF returning -ERANGE instead of zero.
       - Fix firmware example UB by avoiding null-pointer ARef

  misc:
   - Avoid iattr allocation in kernfs listxattr by using
     kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark
     internal property data as private for kernel-doc, and add
     property.h/fwnode.h to driver-api infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h"

* tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (129 commits)
  rust: pci: expose the allocated interrupt type
  PCI: Add pci_irq_type() to query the allocated interrupt type
  rust: pci: remove request_irq() and request_threaded_irq() from Device
  rust: pci: resolve IRQ in index() and embed IrqRequest in IrqVector
  rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type
  kernfs: avoid iattr allocation in listxattr
  rust: serdev: use ThisModule::as_ptr() instead of field access
  ACPI/IORT: use platform_device_set_fwnode()
  ACPI/APMT: use platform_device_set_fwnode()
  firmware_loader: do not queue completed sysfs fallback requests
  rust: pci: Mark Device refcount methods inline
  rust: irq: make Registration compatible with lifetime-bound drivers
  rust: net/phy: remove expansion from doc
  rust: dma: return zero for Coherent reads past EOF
  rust: io: register: use path fragment for alias destination
  rust: io: register: remove unused rule arguments
  rust: io: register: dispatch shortcut rules internally
  MAINTAINERS: add sys_soc.h to DRIVER CORE
  rust: debugfs: remove unsafe blocks from traits impl for Vec
  rust: debugfs: migrate debugfs traits requirements to zerocopy
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux</title>
<updated>2026-08-18T18:57:17+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-08-18T18:57:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=85cdaca6970028bf6f544c355c90035586836ddf'/>
<id>85cdaca6970028bf6f544c355c90035586836ddf</id>
<content type='text'>
Pull arm64 updates from Will Deacon:
 "There's a reasonable amount of stuff here, including a bunch of
  updates to the perf PMU drivers and some MPAM updates to expose the
  memory bandwidth counters via resctrl.

  On the architecture side, some highlights include support for BBML3
  and steps towards support for an architectural NMI solution, all
  wrapped up in a web of fixes for latent issues identified by Sashiko.

  ACPI:

   - Combine reads of AMU counters into a single FFH feedback counter op

  Confidential computing:

   - Fix smp_processor_id() in preemptible context when retrieving an
     attestation token inside a realm

   - Convert pKVM over to a "CC platform"

   - Clean-up our SWIOTLB configuration in preparation for reworking the
     handling of encrypted/decryped DMA buffers in the dma-mapping tree

  CPU errata handling:

   - Work around broken device memory ordering on NVIDIA Olympus cores

   - Fix broken 'nospectre_bhb' command-line option

   - Select the idle loop backend instruction on the command-line

  CPU features:

   - Replace our BBML2-noabort feature with the new architectural BBML3
     feature

   - Disable in-kernel BTI for recent versions of Clang due to issues
     with livepatch that are still being investigated

   - Clean-up documentation describing which ID register fields are
     exposed to userspace

  Interrupts:

   - Preliminary work towards supporting FEAT_NMI, which cleans up our
     IRQ entry code and fixes some latent issues with pseudo-NMI

   - Support for an SDEI backend to trigger an NMI backtrace

  Memory management:

   - Treat all devices as coherent when CLIDR_EL1.LoC == 0

   - Fix no-map handling of sub-page-sized regions

   - Second attempt at unmapping the linear aliases of the kernel data
     and bss sections

   - Fix EFI runtime calls when software-PAN is enabled

  Miscellaneous:

   - Add Mark Rutland as a reviewer!

   - Tidy-up our futex cmpxchg logic when using the new LSUI
     instructions

   - Drop the requirement on DYNAMIC_FTRACE_WITH_CALL_OPS when
     selecting HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS

   - Fix a false-positive KCSCAN splat in the delay loop

   - Use a portable typedef for 128-bit scalar types in our UAPI headers

   - Non-critical fixes for Sashiko reports all over

  MPAM:

   - Hook MPAM memory bandwidth counters into resctrl's counter
     assignment interface

   - Fix a quirk in the MPAM bandwidth counting on Nvidia T241 so that
     it also applies to 63 bit counters

  Perf:

   - Workarounds for hardware issues in the CMN-S3 PMU (Graviton 5) and
     CPU PMU (NVIDIA Olympus again!)

   - Add support for the DDR PMU on Marvell CN20K SoCs

   - Add support for Picoheart implementations of the DCW PCIe PMU

   - Add support for Channel/Rank/Bank filtering in the CXL PMU driver

   - Add support for 64-bit counters in the CSPMU device

   - Add support for revision 2 of the CMN S3 PMU

  Ptrace:

   - Fix a decade-old bug in our handling of seccomp and tracing on
     syscall entry

   - Fix regset handling for inactive SVE and SSVE registers

  Selftests

   - Add some tests for the decade-old bug that we just tried to fix in
     our syscall entry path

   - Fix SVE test crash on SME-only CPUs"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (95 commits)
  arm64/efi: Avoid voluntary preemption with efi_mm installed
  arm64: bti: Disable in-kernel BTI with recent versions of Clang
  arm64: entry: Avoid unnecessary local_irq_disable() on kernel exit
  irqchip/gic-v3: make the unmasking of pseudo-NMIs explicit when handling IRQs
  arm64: Disable KCSAN instrumentation in delay.o
  arm_mpam: Disable driver unbind to avoid UAF
  arm_mpam: Fix a NULL pointer dereference on unbinding after an error interrupt
  perf: arm_pmuv3: Zero initialize hw_id branch stack field
  arm64: mm: Unmap kernel data/bss entirely from the linear map
  iommu/arm-smmu-v3-sva: Use system_supports_bbml3() to detect CPU feature
  perf/arm-cmn: Support CMN S3 r2
  perf/arm-cmn: Plumb in new filter types
  perf/arm-cmn: Refactor event filter data
  perf/arm-cmn: Refactor event filter programming
  perf/arm-cmn: Rename filter variables for clarity
  arm64: mm: fix accidental linear mapping of no-map reserved memory
  tools: Ensure tools copy of linux/filter.h exports the UAPI
  kselftest/arm64: Fix abi test compilation errors
  arch: arm64: add early_param idle=&lt;wfi|yield|nop&gt;
  arm64: entry: mask DAIF before returning from C EL1 handlers
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull arm64 updates from Will Deacon:
 "There's a reasonable amount of stuff here, including a bunch of
  updates to the perf PMU drivers and some MPAM updates to expose the
  memory bandwidth counters via resctrl.

  On the architecture side, some highlights include support for BBML3
  and steps towards support for an architectural NMI solution, all
  wrapped up in a web of fixes for latent issues identified by Sashiko.

  ACPI:

   - Combine reads of AMU counters into a single FFH feedback counter op

  Confidential computing:

   - Fix smp_processor_id() in preemptible context when retrieving an
     attestation token inside a realm

   - Convert pKVM over to a "CC platform"

   - Clean-up our SWIOTLB configuration in preparation for reworking the
     handling of encrypted/decryped DMA buffers in the dma-mapping tree

  CPU errata handling:

   - Work around broken device memory ordering on NVIDIA Olympus cores

   - Fix broken 'nospectre_bhb' command-line option

   - Select the idle loop backend instruction on the command-line

  CPU features:

   - Replace our BBML2-noabort feature with the new architectural BBML3
     feature

   - Disable in-kernel BTI for recent versions of Clang due to issues
     with livepatch that are still being investigated

   - Clean-up documentation describing which ID register fields are
     exposed to userspace

  Interrupts:

   - Preliminary work towards supporting FEAT_NMI, which cleans up our
     IRQ entry code and fixes some latent issues with pseudo-NMI

   - Support for an SDEI backend to trigger an NMI backtrace

  Memory management:

   - Treat all devices as coherent when CLIDR_EL1.LoC == 0

   - Fix no-map handling of sub-page-sized regions

   - Second attempt at unmapping the linear aliases of the kernel data
     and bss sections

   - Fix EFI runtime calls when software-PAN is enabled

  Miscellaneous:

   - Add Mark Rutland as a reviewer!

   - Tidy-up our futex cmpxchg logic when using the new LSUI
     instructions

   - Drop the requirement on DYNAMIC_FTRACE_WITH_CALL_OPS when
     selecting HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS

   - Fix a false-positive KCSCAN splat in the delay loop

   - Use a portable typedef for 128-bit scalar types in our UAPI headers

   - Non-critical fixes for Sashiko reports all over

  MPAM:

   - Hook MPAM memory bandwidth counters into resctrl's counter
     assignment interface

   - Fix a quirk in the MPAM bandwidth counting on Nvidia T241 so that
     it also applies to 63 bit counters

  Perf:

   - Workarounds for hardware issues in the CMN-S3 PMU (Graviton 5) and
     CPU PMU (NVIDIA Olympus again!)

   - Add support for the DDR PMU on Marvell CN20K SoCs

   - Add support for Picoheart implementations of the DCW PCIe PMU

   - Add support for Channel/Rank/Bank filtering in the CXL PMU driver

   - Add support for 64-bit counters in the CSPMU device

   - Add support for revision 2 of the CMN S3 PMU

  Ptrace:

   - Fix a decade-old bug in our handling of seccomp and tracing on
     syscall entry

   - Fix regset handling for inactive SVE and SSVE registers

  Selftests

   - Add some tests for the decade-old bug that we just tried to fix in
     our syscall entry path

   - Fix SVE test crash on SME-only CPUs"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (95 commits)
  arm64/efi: Avoid voluntary preemption with efi_mm installed
  arm64: bti: Disable in-kernel BTI with recent versions of Clang
  arm64: entry: Avoid unnecessary local_irq_disable() on kernel exit
  irqchip/gic-v3: make the unmasking of pseudo-NMIs explicit when handling IRQs
  arm64: Disable KCSAN instrumentation in delay.o
  arm_mpam: Disable driver unbind to avoid UAF
  arm_mpam: Fix a NULL pointer dereference on unbinding after an error interrupt
  perf: arm_pmuv3: Zero initialize hw_id branch stack field
  arm64: mm: Unmap kernel data/bss entirely from the linear map
  iommu/arm-smmu-v3-sva: Use system_supports_bbml3() to detect CPU feature
  perf/arm-cmn: Support CMN S3 r2
  perf/arm-cmn: Plumb in new filter types
  perf/arm-cmn: Refactor event filter data
  perf/arm-cmn: Refactor event filter programming
  perf/arm-cmn: Rename filter variables for clarity
  arm64: mm: fix accidental linear mapping of no-map reserved memory
  tools: Ensure tools copy of linux/filter.h exports the UAPI
  kselftest/arm64: Fix abi test compilation errors
  arch: arm64: add early_param idle=&lt;wfi|yield|nop&gt;
  arm64: entry: mask DAIF before returning from C EL1 handlers
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI/IORT: use platform_device_set_fwnode()</title>
<updated>2026-08-07T22:49:26+00:00</updated>
<author>
<name>Bartosz Golaszewski</name>
<email>bartosz.golaszewski@oss.qualcomm.com</email>
</author>
<published>2026-07-28T14:07:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=67b1e7245bd60f54f820859b9e400136a7b6d00a'/>
<id>67b1e7245bd60f54f820859b9e400136a7b6d00a</id>
<content type='text'>
Platform devices using the split approach of calling
platform_device_alloc() and platform_device_add() must not assign the
firmware nodes manually but use the provided
platform_device_set_fwnode() function which additionally makes sure we
track the reference count of the firmware node correctly.

Replace the manual assignment of the firmware node with a call to
platform_device_set_fwnode().

Signed-off-by: Bartosz Golaszewski &lt;bartosz.golaszewski@oss.qualcomm.com&gt;
Acked-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/20260728-acpi-arm64-pdev-set-fwnode-v1-2-b5aff9b2235a@oss.qualcomm.com
Signed-off-by: Danilo Krummrich &lt;dakr@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Platform devices using the split approach of calling
platform_device_alloc() and platform_device_add() must not assign the
firmware nodes manually but use the provided
platform_device_set_fwnode() function which additionally makes sure we
track the reference count of the firmware node correctly.

Replace the manual assignment of the firmware node with a call to
platform_device_set_fwnode().

Signed-off-by: Bartosz Golaszewski &lt;bartosz.golaszewski@oss.qualcomm.com&gt;
Acked-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/20260728-acpi-arm64-pdev-set-fwnode-v1-2-b5aff9b2235a@oss.qualcomm.com
Signed-off-by: Danilo Krummrich &lt;dakr@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI/APMT: use platform_device_set_fwnode()</title>
<updated>2026-08-07T22:49:26+00:00</updated>
<author>
<name>Bartosz Golaszewski</name>
<email>bartosz.golaszewski@oss.qualcomm.com</email>
</author>
<published>2026-07-28T14:07:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5ab289f5eabcda3b78c4083d6415711a13466436'/>
<id>5ab289f5eabcda3b78c4083d6415711a13466436</id>
<content type='text'>
Platform devices using the split approach of calling
platform_device_alloc() and platform_device_add() must not assign the
firmware nodes manually but use the provided
platform_device_set_fwnode() function which additionally makes sure we
track the reference count of the firmware node correctly.

Replace the manual assignment of the firmware node with a call to
platform_device_set_fwnode().

Signed-off-by: Bartosz Golaszewski &lt;bartosz.golaszewski@oss.qualcomm.com&gt;
Acked-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/20260728-acpi-arm64-pdev-set-fwnode-v1-1-b5aff9b2235a@oss.qualcomm.com
Signed-off-by: Danilo Krummrich &lt;dakr@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Platform devices using the split approach of calling
platform_device_alloc() and platform_device_add() must not assign the
firmware nodes manually but use the provided
platform_device_set_fwnode() function which additionally makes sure we
track the reference count of the firmware node correctly.

Replace the manual assignment of the firmware node with a call to
platform_device_set_fwnode().

Signed-off-by: Bartosz Golaszewski &lt;bartosz.golaszewski@oss.qualcomm.com&gt;
Acked-by: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Link: https://patch.msgid.link/20260728-acpi-arm64-pdev-set-fwnode-v1-1-b5aff9b2235a@oss.qualcomm.com
Signed-off-by: Danilo Krummrich &lt;dakr@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI/APMT: Use stable device ID</title>
<updated>2026-08-02T10:57:31+00:00</updated>
<author>
<name>Robin Murphy</name>
<email>robin.murphy@arm.com</email>
</author>
<published>2026-07-16T14:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=04aa909b38bfe9a7e9b052f2c66b98d33f6f8a64'/>
<id>04aa909b38bfe9a7e9b052f2c66b98d33f6f8a64</id>
<content type='text'>
The APMT node format includes a unique identifier, so we can use this as
the platform device ID to give userspace stable and identifiable device
names, rather than auto numbering dependent on how the table is parsed.

Cc: Lorenzo Pieralisi &lt;lpieralisi@kernel.org&gt;
Cc: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Cc: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Reviewed-by: Ilkka Koskinen &lt;ilkka@os.amperecomputing.com&gt;
Signed-off-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Reviewed-by: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Signed-off-by: Will Deacon &lt;will@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The APMT node format includes a unique identifier, so we can use this as
the platform device ID to give userspace stable and identifiable device
names, rather than auto numbering dependent on how the table is parsed.

Cc: Lorenzo Pieralisi &lt;lpieralisi@kernel.org&gt;
Cc: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Cc: Sudeep Holla &lt;sudeep.holla@kernel.org&gt;
Reviewed-by: Ilkka Koskinen &lt;ilkka@os.amperecomputing.com&gt;
Signed-off-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Reviewed-by: Hanjun Guo &lt;guohanjun@huawei.com&gt;
Signed-off-by: Will Deacon &lt;will@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI/IORT: Implement ACPI infrastructure to enable GICv5 IWB probe deferral</title>
<updated>2026-07-09T13:30:19+00:00</updated>
<author>
<name>Lorenzo Pieralisi</name>
<email>lpieralisi@kernel.org</email>
</author>
<published>2026-07-09T08:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5a64611747687189415a5298a16e1ad4c08a829b'/>
<id>5a64611747687189415a5298a16e1ad4c08a829b</id>
<content type='text'>
Implement an IORT ACPI hook to retrieve the acpi_handle of the interrupt
controller handling a specific GSI (if any, on GICv5 systems only the IWB
is represented in firmware with an ACPI device object) and add the IWB to
the list of devices whose dependencies can be detected (and cleared) in
ACPI core to guarantee that probe dependencies for the IWB can be
satisfied.

Enable autodep detection for arm64 by adding the arch_acpi_add_auto_dep()
callback in the ACPI IORT driver.

Signed-off-by: Lorenzo Pieralisi &lt;lpieralisi@kernel.org&gt;
Link: https://patch.msgid.link/20260709-gic-v5-acpi-iwb-probe-deferral-v4-6-48dae790f871@kernel.org
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement an IORT ACPI hook to retrieve the acpi_handle of the interrupt
controller handling a specific GSI (if any, on GICv5 systems only the IWB
is represented in firmware with an ACPI device object) and add the IWB to
the list of devices whose dependencies can be detected (and cleared) in
ACPI core to guarantee that probe dependencies for the IWB can be
satisfied.

Enable autodep detection for arm64 by adding the arch_acpi_add_auto_dep()
callback in the ACPI IORT driver.

Signed-off-by: Lorenzo Pieralisi &lt;lpieralisi@kernel.org&gt;
Link: https://patch.msgid.link/20260709-gic-v5-acpi-iwb-probe-deferral-v4-6-48dae790f871@kernel.org
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'timers-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/daniel.lezcano/linux into timers/clocksource</title>
<updated>2026-06-13T14:24:29+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@kernel.org</email>
</author>
<published>2026-06-13T14:24:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c66494c79ede1af529dbf67f9ed6fdbf42e05ef3'/>
<id>c66494c79ede1af529dbf67f9ed6fdbf42e05ef3</id>
<content type='text'>
Pull clocksource/driver updates from Daniel Lezcano:

  - Remove the sifive,fine-ctr-bits property bindings because it is a
    redundant information (Nick Hu)

  - Remove the TCIU8 interrupt bindings on Renesas because it should not
    be described as the documentation marked reserved and fix the
    conditional reset line for the RZ/{T2H,N2H} (Cosmin Tanislav)

  - Add the StarFive JHB100 clint DT bindings compatible string (Ley
    Foon Tan)

  - Extend schema condition for interrupts to cover D1 compatible
    variant an add the D1 hstimer support (Michal Piekos)

  - Update the ARM architected timer support to handle the ACPI GTDT v3
    format and the EL2 virtual timer, enabling Linux to use the most
    appropriate timer when running with VHE, while also fixing several
    Device Trees to accurately reflect the underlying hardware (Marc
    Zyngier)

  - Cleanup and add the clocksource and the clockevent in the TI DM
    timer (Markus Schneider-Pargmann)

  - Add the multiple watchdogs support in the tegra186 and
    tegra234. Dedicate one as a kernel watchdog (Kartik Rajput)

  - Add the NXP clocksource selection for the scheduler in the Kconfig
    (Enric Balletbo i Serra)

Link: https://lore.kernel.org/all/1e55e8d6-8024-4f17-8620-ab3385465d76@oss.qualcomm.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull clocksource/driver updates from Daniel Lezcano:

  - Remove the sifive,fine-ctr-bits property bindings because it is a
    redundant information (Nick Hu)

  - Remove the TCIU8 interrupt bindings on Renesas because it should not
    be described as the documentation marked reserved and fix the
    conditional reset line for the RZ/{T2H,N2H} (Cosmin Tanislav)

  - Add the StarFive JHB100 clint DT bindings compatible string (Ley
    Foon Tan)

  - Extend schema condition for interrupts to cover D1 compatible
    variant an add the D1 hstimer support (Michal Piekos)

  - Update the ARM architected timer support to handle the ACPI GTDT v3
    format and the EL2 virtual timer, enabling Linux to use the most
    appropriate timer when running with VHE, while also fixing several
    Device Trees to accurately reflect the underlying hardware (Marc
    Zyngier)

  - Cleanup and add the clocksource and the clockevent in the TI DM
    timer (Markus Schneider-Pargmann)

  - Add the multiple watchdogs support in the tegra186 and
    tegra234. Dedicate one as a kernel watchdog (Kartik Rajput)

  - Add the NXP clocksource selection for the scheduler in the Kconfig
    (Enric Balletbo i Serra)

Link: https://lore.kernel.org/all/1e55e8d6-8024-4f17-8620-ab3385465d76@oss.qualcomm.com
</pre>
</div>
</content>
</entry>
</feed>
