CVE-2026-80562

gpio: ml-ioh: use raw_spinlock_t for the register lock

N/A
Published: August 26, 2026 at 02:37 PM UTC
Updated: August 27, 2026 at 01:31 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: gpio: ml-ioh: use raw_spinlock_t for the register lock ioh_irq_type() is registered as the irq_chip .irq_set_type callback and takes chip->spinlock with spin_lock_irqsave(). This callback is reached from __setup_irq() -> __irq_set_trigger() -> chip->irq_set_type() while the caller holds desc->lock, a raw_spinlock_t, with hardirqs disabled. That context is not sleepable, but on PREEMPT_RT a regular spinlock_t is an rtmutex-backed sleeping lock, so acquiring it there is invalid. ioh_irq_enable() and ioh_irq_disable() take the same lock from the .irq_enable/.irq_disable callbacks, which are likewise invoked with desc->lock held. Convert the register lock to raw_spinlock_t. The same lock also serializes the GPIO direction/value callbacks and the suspend/resume register save/restore, and those critical sections only perform short sequences of MMIO register accesses (ioread32()/iowrite32()); the .irq_set_type callback additionally emits a dev_warn() on an unsupported type. None of these are sleepable operations, so keeping this register lock non-sleeping is appropriate for the irqchip callbacks and does not change the GPIO-side locking contract. This is the same fix as commit a02b8950d619 ("gpio: pch: use raw_spinlock_t for the register lock"); this driver shares the same structure as gpio-pch.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.2 ≤ v < 5.10.2673.2 ≤ v < 5.15.2183.2 ≤ v < 6.1.1853.2 ≤ v < 6.12.1063.2 ≤ v < 6.18.463.2 ≤ v < 6.6.1543.2 ≤ v < 7.1.103.2 ≤ v < 7.23.254be566317b6aece2389a95bb19ea209af9359be
Vendor states this is fixed in 0559b86611c35d342dd48542ea26a9e437046bf6 (fixed)
Vendor states this is fixed in 359e6b1168c9a62a7bd214ace476aaa2d57eebe8 (fixed)
Vendor states this is fixed in 431b10133113537660a6090a2856b0d74d1b06de (fixed)
Vendor states this is fixed in 600411ea1f2443fdf5b1af9b6480f616d7aff9d0 (fixed)
Vendor states this is fixed in 63d2230e5076c12f93d2a1d1bff2fbbf6cf32f3c (fixed)
Vendor states this is fixed in 84be002b40d30c56a91873b236e2d9001bbee363 (fixed)
Vendor states this is fixed in b6505a4cea45dd92eb753581b1ad9b524b5fcc34 (fixed)
Vendor states this is fixed in bc7934d0acd4fc1c7e5b7c68debdb4a991121628 (fixed)
Vendor states this is fixed in 3.2 (unaffected)
Vendor states this is fixed in 5.10.267 (unaffected)
Vendor states this is fixed in 5.15.218 (unaffected)
Vendor states this is fixed in 6.1.185 (unaffected)
Vendor states this is fixed in 6.12.106 (unaffected)
Vendor states this is fixed in 6.18.46 (unaffected)
Vendor states this is fixed in 6.6.154 (unaffected)
Vendor states this is fixed in 7.1.10 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card