Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: pds_core: fix error handling in pdsc_devcmd_wait Fix two cases where pdsc_devcmd_wait() returns stale success from the completion register instead of an error: 1. FW crash: If firmware stops running, the wait loop breaks early with running=false. The condition "if ((!done || timeout) && running)" is false, so error handling is bypassed and stale status is returned. Check !running first and return -ENXIO. 2. Timeout: If a command times out, err is set to -ETIMEDOUT but then overwritten by pdsc_err_to_errno(status) which reads stale status. Return -ETIMEDOUT immediately after cleaning up. Both errors now propagate to pdsc_devcmd_locked() which queues health_work for recovery.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 45d76f492938cdc27ddadc16e1e75103f4cfbf56 before 3231aff8ab26111c54e630b1a200fc43a729dd14; affected 45d76f492938cdc27ddadc16e1e75103f4cfbf56 before 10ae3180095bbe2d378c5b1d6f2f2fd74dda3cc2; affected 45d76f492938cdc27ddadc16e1e75103f4cfbf56 before 784dd2bdc622ed3cc6ef8e113aa1852e252de36f; affected 45d76f492938cdc27ddadc16e1e75103f4cfbf56 before 560d559324169fe0583d54c475b5329550a86f71; affected 45d76f492938cdc27ddadc16e1e75103f4cfbf56 before 0e46b6635b03d29807f810c3b415c4755a3f958d |
| Linux / Linux | affected 6.4; unaffected 0 before 6.4; unaffected 6.6.142 through 6.6.*; unaffected 6.12.92 through 6.12.*; unaffected 6.18.34 through 6.18.*; unaffected 7.0.11 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/3231aff8ab26111c54e630b1a200fc43a729dd14
- https://git.kernel.org/stable/c/10ae3180095bbe2d378c5b1d6f2f2fd74dda3cc2
- https://git.kernel.org/stable/c/784dd2bdc622ed3cc6ef8e113aa1852e252de36f
- https://git.kernel.org/stable/c/560d559324169fe0583d54c475b5329550a86f71
- https://git.kernel.org/stable/c/0e46b6635b03d29807f810c3b415c4755a3f958d