Description
In the Linux kernel, the following vulnerability has been resolved: RDMA/hns: Fix soft lockup during bt pages loop Driver runs a for-loop when allocating bt pages and mapping them with buffer pages. When a large buffer (e.g. MR over 100GB) is being allocated, it may require a considerable loop count. This will lead to soft lockup: watchdog: BUG: soft lockup - CPU#27 stuck for 22s! ... Call trace: hem_list_alloc_mid_bt+0x124/0x394 [hns_roce_hw_v2] hns_roce_hem_list_request+0xf8/0x160 [hns_roce_hw_v2] hns_roce_mtr_create+0x2e4/0x360 [hns_roce_hw_v2] alloc_mr_pbl+0xd4/0x17c [hns_roce_hw_v2] hns_roce_reg_user_mr+0xf8/0x190 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x118/0x290 watchdog: BUG: soft lockup - CPU#35 stuck for 23s! ... Call trace: hns_roce_hem_list_find_mtt+0x7c/0xb0 [hns_roce_hw_v2] mtr_map_bufs+0xc4/0x204 [hns_roce_hw_v2] hns_roce_mtr_create+0x31c/0x3c4 [hns_roce_hw_v2] alloc_mr_pbl+0xb0/0x160 [hns_roce_hw_v2] hns_roce_reg_user_mr+0x108/0x1c0 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x120/0x2bc Add a cond_resched() to fix soft lockup during these loops. In order not to affect the allocation performance of normal-size buffer, set the loop count of a 100GB MR as the threshold to call cond_resched().
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
38389eaa4db192648916464b60f6086d6bbaa6de to < 461eb4ddede266df8f181f578732bb01742c3fd6affected38389eaa4db192648916464b60f6086d6bbaa6de to < efe544462fc0b499725364f90bd0f8bbf16f861aaffected38389eaa4db192648916464b60f6086d6bbaa6de to < 4104b0023ff66b5df900d23dbf38310893deca79affected38389eaa4db192648916464b60f6086d6bbaa6de to < 975355faba56c0751292ed15a90c3e2c7dc0aad6affected38389eaa4db192648916464b60f6086d6bbaa6de to < 13a52f6c9ff99f7d88f81da535cb4e85eade662baffected38389eaa4db192648916464b60f6086d6bbaa6de to < 9ab20fec7a1ce3057ad86afd27bfd08420b7cd11affected38389eaa4db192648916464b60f6086d6bbaa6de to < 25655580136de59ec89f09089dd28008ea440fc9affected
Linux Linux
Default version status: affected
5.3affected0 to < 5.3unaffected5.10.236 to ≤ 5.10.*unaffected5.15.180 to ≤ 5.15.*unaffected6.1.132 to ≤ 6.1.*unaffected6.6.85 to ≤ 6.6.*unaffected6.12.21 to ≤ 6.12.*unaffected6.13.9 to ≤ 6.13.*unaffected6.14 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/461eb4ddede266df8f181f578732bb01742c3fd6 ↗
- https://git.kernel.org/stable/c/efe544462fc0b499725364f90bd0f8bbf16f861a ↗
- https://git.kernel.org/stable/c/4104b0023ff66b5df900d23dbf38310893deca79 ↗
- https://git.kernel.org/stable/c/975355faba56c0751292ed15a90c3e2c7dc0aad6 ↗
- https://git.kernel.org/stable/c/13a52f6c9ff99f7d88f81da535cb4e85eade662b ↗
- https://git.kernel.org/stable/c/9ab20fec7a1ce3057ad86afd27bfd08420b7cd11 ↗
- https://git.kernel.org/stable/c/25655580136de59ec89f09089dd28008ea440fc9 ↗
- https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html ↗
- https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html ↗