CVE-2026-93086: firmware: arm_scmi: Avoid IDR updates while cleaning channels
In the Linux kernel, the following vulnerability has been resolved:
firmware: armscmi: Avoid IDR updates while cleaning channels
scmicleanupchannels() walks the TX/RX channel IDRs with idrforeach() to free transport resources and destroy the dedicated transport devices before calling idrdestroy().
The destroy callback removed each entry from the same IDR being walked. That is not needed for this cleanup path, and it is unsafe because idrforeach() has not advanced its radix-tree iterator while the callback is running. Removing the current entry from the callback can invalidate the iterator state. The callback also cannot be protected by rcureadlock(), because scmidevicedestroy() may sleep.
Leave IDR teardown to the following idrdestroy() call and keep the callback limited to device destruction.