In the Linux kernel, the following vulnerability has been resolved:
soc: fsl: qbman: Use raw spinlock for cgr_lock
smp_call_function always runs its callback in hard IRQ context, even on PREEMPT_RT, where spinlocks can sleep. So we need to use a raw spinlock for cgr_lock to ensure we aren't waiting on a sleeping task.
Although this bug has existed for a while, it was not apparent until commit ef2a8d5478b9 ("net: dpaa: Adjust queue depth on rate change") which invokes smp_call_function_single via qman_update_cgr_safe every time a link goes up or down.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 4.9.92 | 4.10 |
| linux / linux_kernel | 4.14.32 | 4.15 |
| linux / linux_kernel | 4.15.15 | 4.16 |
| linux / linux_kernel | 4.16.1 | 4.19.312 |
| linux / linux_kernel | 4.20 | 5.4.274 |
| linux / linux_kernel | 5.5 | 5.10.215 |
| linux / linux_kernel | 5.11 | 5.15.154 |
| linux / linux_kernel | 5.16 | 6.1.84 |
| linux / linux_kernel | 6.2 | 6.6.24 |
| linux / linux_kernel | 6.7 | 6.7.12 |
| linux / linux_kernel | 6.8 | 6.8.3 |
| linux / linux_kernel | 4.16 | 4.16.x |
| linux / linux_kernel | 4.16-rc7 | 4.16-rc7.x |
| debian / debian_linux | 10.0 | 10.0.x |