{"id":"CVE-2025-22010","state":"PUBLISHED","title":"RDMA/hns: Fix soft lockup during bt pages loop","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hns: Fix soft lockup during bt pages loop\n\nDriver runs a for-loop when allocating bt pages and mapping them with\nbuffer pages. When a large buffer (e.g. MR over 100GB) is being allocated,\nit may require a considerable loop count. This will lead to soft lockup:\n\n        watchdog: BUG: soft lockup - CPU#27 stuck for 22s!\n        ...\n        Call trace:\n         hem_list_alloc_mid_bt+0x124/0x394 [hns_roce_hw_v2]\n         hns_roce_hem_list_request+0xf8/0x160 [hns_roce_hw_v2]\n         hns_roce_mtr_create+0x2e4/0x360 [hns_roce_hw_v2]\n         alloc_mr_pbl+0xd4/0x17c [hns_roce_hw_v2]\n         hns_roce_reg_user_mr+0xf8/0x190 [hns_roce_hw_v2]\n         ib_uverbs_reg_mr+0x118/0x290\n\n        watchdog: BUG: soft lockup - CPU#35 stuck for 23s!\n        ...\n        Call trace:\n         hns_roce_hem_list_find_mtt+0x7c/0xb0 [hns_roce_hw_v2]\n         mtr_map_bufs+0xc4/0x204 [hns_roce_hw_v2]\n         hns_roce_mtr_create+0x31c/0x3c4 [hns_roce_hw_v2]\n         alloc_mr_pbl+0xb0/0x160 [hns_roce_hw_v2]\n         hns_roce_reg_user_mr+0x108/0x1c0 [hns_roce_hw_v2]\n         ib_uverbs_reg_mr+0x120/0x2bc\n\nAdd a cond_resched() to fix soft lockup during these loops. In order not\nto affect the allocation performance of normal-size buffer, set the loop\ncount of a 100GB MR as the threshold to call cond_resched().","publishedAt":"2025-04-08T08:18:00.430Z","updatedAt":"2026-05-11T21:10:54.202Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"461eb4ddede266df8f181f578732bb01742c3fd6","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"efe544462fc0b499725364f90bd0f8bbf16f861a","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"4104b0023ff66b5df900d23dbf38310893deca79","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"975355faba56c0751292ed15a90c3e2c7dc0aad6","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"13a52f6c9ff99f7d88f81da535cb4e85eade662b","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"9ab20fec7a1ce3057ad86afd27bfd08420b7cd11","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"25655580136de59ec89f09089dd28008ea440fc9","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/hns/hns_roce_hem.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"5.10.236","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.180","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.132","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.85","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.21","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.9","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/hns/hns_roce_hem.c"]}],"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"],"weaknesses":[],"ingestedAt":"2026-10-29T20:08:39.238Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/22xxx/CVE-2025-22010.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-22010","state":"PUBLISHED","datePublished":"2025-04-08T08:18:00.430Z","dateUpdated":"2026-05-11T21:10:54.202Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-12-29T08:45:45.804Z"},"containers":{"cna":{"title":"RDMA/hns: Fix soft lockup during bt pages loop","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/hns: Fix soft lockup during bt pages loop\n\nDriver runs a for-loop when allocating bt pages and mapping them with\nbuffer pages. When a large buffer (e.g. MR over 100GB) is being allocated,\nit may require a considerable loop count. This will lead to soft lockup:\n\n        watchdog: BUG: soft lockup - CPU#27 stuck for 22s!\n        ...\n        Call trace:\n         hem_list_alloc_mid_bt+0x124/0x394 [hns_roce_hw_v2]\n         hns_roce_hem_list_request+0xf8/0x160 [hns_roce_hw_v2]\n         hns_roce_mtr_create+0x2e4/0x360 [hns_roce_hw_v2]\n         alloc_mr_pbl+0xd4/0x17c [hns_roce_hw_v2]\n         hns_roce_reg_user_mr+0xf8/0x190 [hns_roce_hw_v2]\n         ib_uverbs_reg_mr+0x118/0x290\n\n        watchdog: BUG: soft lockup - CPU#35 stuck for 23s!\n        ...\n        Call trace:\n         hns_roce_hem_list_find_mtt+0x7c/0xb0 [hns_roce_hw_v2]\n         mtr_map_bufs+0xc4/0x204 [hns_roce_hw_v2]\n         hns_roce_mtr_create+0x31c/0x3c4 [hns_roce_hw_v2]\n         alloc_mr_pbl+0xb0/0x160 [hns_roce_hw_v2]\n         hns_roce_reg_user_mr+0x108/0x1c0 [hns_roce_hw_v2]\n         ib_uverbs_reg_mr+0x120/0x2bc\n\nAdd a cond_resched() to fix soft lockup during these loops. In order not\nto affect the allocation performance of normal-size buffer, set the loop\ncount of a 100GB MR as the threshold to call cond_resched()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"461eb4ddede266df8f181f578732bb01742c3fd6","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"efe544462fc0b499725364f90bd0f8bbf16f861a","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"4104b0023ff66b5df900d23dbf38310893deca79","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"975355faba56c0751292ed15a90c3e2c7dc0aad6","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"13a52f6c9ff99f7d88f81da535cb4e85eade662b","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"9ab20fec7a1ce3057ad86afd27bfd08420b7cd11","versionType":"git"},{"version":"38389eaa4db192648916464b60f6086d6bbaa6de","status":"affected","lessThan":"25655580136de59ec89f09089dd28008ea440fc9","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/hns/hns_roce_hem.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"5.10.236","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.180","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.132","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.85","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.21","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.9","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/hns/hns_roce_hem.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/461eb4ddede266df8f181f578732bb01742c3fd6"},{"url":"https://git.kernel.org/stable/c/efe544462fc0b499725364f90bd0f8bbf16f861a"},{"url":"https://git.kernel.org/stable/c/4104b0023ff66b5df900d23dbf38310893deca79"},{"url":"https://git.kernel.org/stable/c/975355faba56c0751292ed15a90c3e2c7dc0aad6"},{"url":"https://git.kernel.org/stable/c/13a52f6c9ff99f7d88f81da535cb4e85eade662b"},{"url":"https://git.kernel.org/stable/c/9ab20fec7a1ce3057ad86afd27bfd08420b7cd11"},{"url":"https://git.kernel.org/stable/c/25655580136de59ec89f09089dd28008ea440fc9"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:10:54.202Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.10.236"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.15.180"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.1.132"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.6.85"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.12.21"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.13.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.14"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T19:40:55.912Z"}}]}}}