Description
In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7615: avoid waiting for mac work under the mt76 mutex mt7615_suspend() acquired the mt76 mutex and then called cancel_delayed_work_sync() on mac_work. mt7615_mac_work() acquires the same mutex via mt7615_mutex_acquire() at the top of the worker, so if mac_work is already running and blocked on the mutex, the suspend path deadlocks waiting for the work it holds the mutex against. Flush scan_work and mac_work before taking the mutex, matching the suspend paths in mt7921 and mt7925. scan_work only takes the mt76 spinlock, but moving it keeps the sequence consistent. This also keeps mac_work from running over an already suspended HIF, which the previous split (async cancel under the lock, sync cancel after release) would have allowed.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
c6bf20109a3fae92402cb76ad709ec5256bcd169 to < 36c73b86a09f0e51c0f81a75c8945b6c5557ff27affectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < 33d29aeb4c0eede92622a7d04ea492b94c30f089affectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < ef2ec8b537c3a54e241d693bd03016f80d0d4484affectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < 3114d479f2a1d31b2e6214c395794c6e5715e579affectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < 4506e229b2e468b8c64bcf52c50c41a3bf2e633eaffectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < 44be85af3e1772ffb3332feafedad2a73b22854caffectedc6bf20109a3fae92402cb76ad709ec5256bcd169 to < bda8324270b1ac91bfba1df8928e0570e29759e8affected
Linux Linux
Default version status: affected
5.8affected0 to < 5.8unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/36c73b86a09f0e51c0f81a75c8945b6c5557ff27 ↗
- https://git.kernel.org/stable/c/33d29aeb4c0eede92622a7d04ea492b94c30f089 ↗
- https://git.kernel.org/stable/c/ef2ec8b537c3a54e241d693bd03016f80d0d4484 ↗
- https://git.kernel.org/stable/c/3114d479f2a1d31b2e6214c395794c6e5715e579 ↗
- https://git.kernel.org/stable/c/4506e229b2e468b8c64bcf52c50c41a3bf2e633e ↗
- https://git.kernel.org/stable/c/44be85af3e1772ffb3332feafedad2a73b22854c ↗
- https://git.kernel.org/stable/c/bda8324270b1ac91bfba1df8928e0570e29759e8 ↗