Description
In the Linux kernel, the following vulnerability has been resolved: nvme: fix reconnection fail due to reserved tag allocation We found a issue on production environment while using NVMe over RDMA, admin_q reconnect failed forever while remote target and network is ok. After dig into it, we found it may caused by a ABBA deadlock due to tag allocation. In my case, the tag was hold by a keep alive request waiting inside admin_q, as we quiesced admin_q while reset ctrl, so the request maked as idle and will not process before reset success. As fabric_q shares tagset with admin_q, while reconnect remote target, we need a tag for connect command, but the only one reserved tag was held by keep alive command which waiting inside admin_q. As a result, we failed to reconnect admin_q forever. In order to fix this issue, I think we should keep two reserved tags for admin queue.
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
ed01fee283a067c72b2d6500046080dbc1bb9dae to < 149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8affecteded01fee283a067c72b2d6500046080dbc1bb9dae to < ff2f90f88d78559802466ad1c84ac5bda4416b3aaffecteded01fee283a067c72b2d6500046080dbc1bb9dae to < 6851778504cdb49431809b4ba061903d5f592c96affecteded01fee283a067c72b2d6500046080dbc1bb9dae to < 262da920896e2f2ab0e3947d9dbee0aa09045818affecteded01fee283a067c72b2d6500046080dbc1bb9dae to < de105068fead55ed5c07ade75e9c8e7f86a00d1daffected
Linux Linux
Default version status: affected
5.12affected0 to < 5.12unaffected6.1.83 to ≤ 6.1.*unaffected6.6.23 to ≤ 6.6.*unaffected6.7.11 to ≤ 6.7.*unaffected6.8.2 to ≤ 6.8.*unaffected6.9 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8 ↗
- https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a ↗
- https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96 ↗
- https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818 ↗
- https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d ↗