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 condresched() 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 condresched().
{ "vanir_signatures": [ { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-00acf985", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25655580136de59ec89f09089dd28008ea440fc9", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-042bb623", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975355faba56c0751292ed15a90c3e2c7dc0aad6", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-064a36f7", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975355faba56c0751292ed15a90c3e2c7dc0aad6", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-076fe0bf", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13a52f6c9ff99f7d88f81da535cb4e85eade662b", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-142a4c09", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab20fec7a1ce3057ad86afd27bfd08420b7cd11", "deprecated": false, "digest": { "length": 950.0, "function_hash": "280313982277283004321143097630902131986" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-1e186df0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@975355faba56c0751292ed15a90c3e2c7dc0aad6", "deprecated": false, "digest": { "length": 950.0, "function_hash": "280313982277283004321143097630902131986" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-1f613bc0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab20fec7a1ce3057ad86afd27bfd08420b7cd11", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-247ca5c0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4104b0023ff66b5df900d23dbf38310893deca79", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-29d10e74", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4104b0023ff66b5df900d23dbf38310893deca79", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-43d36c8f", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13a52f6c9ff99f7d88f81da535cb4e85eade662b", "deprecated": false, "digest": { "length": 950.0, "function_hash": "280313982277283004321143097630902131986" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-49ddcfde", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@461eb4ddede266df8f181f578732bb01742c3fd6", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-4f0ad8ed", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efe544462fc0b499725364f90bd0f8bbf16f861a", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-5a8c7e37", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efe544462fc0b499725364f90bd0f8bbf16f861a", "deprecated": false, "digest": { "length": 946.0, "function_hash": "335430854911483534771210253648075068613" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-680cd916", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25655580136de59ec89f09089dd28008ea440fc9", "deprecated": false, "digest": { "length": 950.0, "function_hash": "280313982277283004321143097630902131986" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-7f51d81c", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4104b0023ff66b5df900d23dbf38310893deca79", "deprecated": false, "digest": { "length": 950.0, "function_hash": "280313982277283004321143097630902131986" }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-91fb0c21", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@461eb4ddede266df8f181f578732bb01742c3fd6", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-a4e31e78", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ab20fec7a1ce3057ad86afd27bfd08420b7cd11", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-a6890b37", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efe544462fc0b499725364f90bd0f8bbf16f861a", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_request", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-af43bb0a", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@461eb4ddede266df8f181f578732bb01742c3fd6", "deprecated": false, "digest": { "length": 946.0, "function_hash": "335430854911483534771210253648075068613" }, "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "hns_roce_hem_list_find_mtt", "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-b5f8122f", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13a52f6c9ff99f7d88f81da535cb4e85eade662b", "deprecated": false, "digest": { "length": 422.0, "function_hash": "80673632224728145656168968084586182413" }, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/infiniband/hw/hns/hns_roce_hem.c" }, "id": "CVE-2025-22010-d82061c0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25655580136de59ec89f09089dd28008ea440fc9", "deprecated": false, "digest": { "line_hashes": [ "145412880534976202572237891007257764471", "317085629876325769848122726648827777948", "214675480086425503345512661405998271824", "190311839968429336872804784291156236762", "269838116142988662046450069945186336044", "128222500096138719109138001300766132291", "187857528285417687842230398974262364118", "248530228644742098703549530909928887527", "53896533483121182634774786486558631178", "313278906525341265277828521746987252945", "239223845219606824148260617059607114845", "261713932756154046183568696500076480515", "124168856577486807411197746450586422208", "55688720859465175661037051294852814304", "299043665198171420490432587360695894419", "339310336987307210962192598995422265343", "177867525539378161813742032694989891961" ], "threshold": 0.9 }, "signature_version": "v1" } ] }