Skip to content

Commit 17eabd6

Browse files
rpearsonhpe-designjgunthorpe
authored andcommitted
RDMA/rxe: Fix double unlock in rxe_qp.c
A recent patch can cause a double spin_unlock_bh() in rxe_qp_to_attr() at line 715 in rxe_qp.c. Move the 2nd unlock into the if statement. Fixes: f605f26 ("RDMA/rxe: Protect QP state with qp->state_lock") Link: https://lore.kernel.org/r/20230515201056.1591140-1-rpearsonhpe@gmail.com Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/r/27773078-40ce-414f-8b97-781954da9f25@kili.mountain Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent 78b6a9a commit 17eabd6

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/infiniband/sw/rxe/rxe_qp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,9 @@ int rxe_qp_to_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask)
712712
if (qp->attr.sq_draining) {
713713
spin_unlock_bh(&qp->state_lock);
714714
cond_resched();
715+
} else {
716+
spin_unlock_bh(&qp->state_lock);
715717
}
716-
spin_unlock_bh(&qp->state_lock);
717718

718719
return 0;
719720
}

0 commit comments

Comments
 (0)