]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
IB/rxe: Fix missing umem_odp->umem_mutex unlock on error path
authorLi Zhijian <lizhijian@fujitsu.com>
Fri, 26 Dec 2025 09:41:12 +0000 (17:41 +0800)
committerLeon Romanovsky <leon@kernel.org>
Tue, 30 Dec 2025 09:22:59 +0000 (04:22 -0500)
rxe_odp_map_range_and_lock() must release umem_odp->umem_mutex when an
error occurs, including cases where rxe_check_pagefault() fails.

Fixes: 2fae67ab63db ("RDMA/rxe: Add support for Send/Recv/Write/Read with ODP")
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
Link: https://patch.msgid.link/20251226094112.3042583-1-lizhijian@fujitsu.com
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/sw/rxe/rxe_odp.c

index ae71812bea82c7084fa21a89aa0dee641c2a1f4f..c928cbf2e35f87d8d3120e41b015cc62d8c195cc 100644 (file)
@@ -179,8 +179,10 @@ static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u
                        return err;
 
                need_fault = rxe_check_pagefault(umem_odp, iova, length);
-               if (need_fault)
+               if (need_fault) {
+                       mutex_unlock(&umem_odp->umem_mutex);
                        return -EFAULT;
+               }
        }
 
        return 0;