diff options
| author | Jacob Moroni <jmoroni@google.com> | 2026-09-15 17:03:17 +0000 |
|---|---|---|
| committer | Leon Romanovsky <leon@kernel.org> | 2026-09-22 09:22:57 -0400 |
| commit | 5bb710151753fe53047b1d34b1b54d0f179cec68 (patch) | |
| tree | dbeb36c69e555e64da4f617c6e77d364deb4e790 /tools/lib/python/kdoc/python_version.py | |
| parent | ba88a28b47a703c3637ead33b1c70afab0803513 (diff) | |
RDMA/irdma: Fix erroneous -ENOMEM for large MR registration
Commit cc8997c94bf3 ("RDMA/irdma: Refactor PBLE functions")
replaced the explicit level1_only boolean with a bit mask
but did not properly convert the "if (level1_only)" check
in irdma_get_pble() to be "lvl == PBLE_LEVEL_1" and instead
left it as "if (lvl)".
User MR registration passes "lvl = PBLE_LEVEL_1 | PBLE_LEVEL_2"
so this check always evaluates to true and causes the
loop to bail after grabbing a single SD even if the region
actually requires more than one SD (as is the case for
regions larger than 1 GiB with 4k pages). As a result, these
registrations can fail with -ENOMEM even if there are
sufficient PBLE resources.
Fixes: cc8997c94bf3 ("RDMA/irdma: Refactor PBLE functions")
Signed-off-by: Jacob Moroni <jmoroni@google.com>
Link: https://patch.msgid.link/20260915170317.2901672-1-jmoroni@google.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
