IB/rxe: Fix missing umem_odp->umem_mutex unlock on error path

rxe_odp_map_range_and_lock() must release umem_odp->umem_mutex when an
error occurs, including cases where rxe_check_pagefault() fails.

Fixes: 2fae67ab63 ("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>
This commit is contained in:
Li Zhijian
2025-12-26 17:41:12 +08:00
committed by Leon Romanovsky
parent 3d70e0fb0f
commit 3c68cf6823

View 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;