DEBIAN-CVE-2024-26806

Source
https://security-tracker.debian.org/tracker/DEBIAN-CVE-2024-26806
Import Source
https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2024-26806.json
JSON Data
https://api.osv.dev/v1/vulns/DEBIAN-CVE-2024-26806
Upstream
Published
2024-04-04T09:15:09Z
Modified
2025-09-25T03:54:33.030611Z
Summary
[none]
Details

In the Linux kernel, the following vulnerability has been resolved: spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks The ->runtimesuspend() and ->runtimeresume() callbacks are not expected to call spicontrollersuspend() and spicontrollerresume(). Remove calls to those in the cadence-qspi driver. Those helpers have two roles currently: - They stop/start the queue, including dealing with the kworker. - They toggle the SPI controller SPICONTROLLERSUSPENDED flag. It requires acquiring ctlr->buslockmutex. Step one is irrelevant because cadence-qspi is not queued. Step two however has two implications: - A deadlock occurs, because ->runtimeresume() is called in a context where the lock is already taken (in the ->execop() callback, where the usage count is incremented). - It would disallow all operations once the device is auto-suspended. Here is a brief call tree highlighting the mutex deadlock: spimemexecop() ... spimemaccessstart() mutexlock(&ctlr->buslockmutex) cqspiexecmemop() pmruntimeresumeandget() cqspiresume() spicontrollerresume() mutexlock(&ctlr->buslockmutex) ... spimemaccessend() mutexunlock(&ctlr->buslockmutex) ...

References

Affected packages

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.7.9-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:14 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.7.9-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}