[ofa-general] [PATCH] core: ib_uverbs_reg_xrc_rcv_qp thinko fix.
Jack Morgenstein
jackm at dev.mellanox.co.il
Sun Mar 30 05:07:03 PDT 2008
core: ib_uverbs_reg_xrc_rcv_qp thinko fix.
When caller calls ib_uverbs_reg_xrc_rcv_qp more than once for a given
receive QP, should return in_len, and should not call put_xrcd_read again.
Found By: Ronni Zimmerman of Mellanox QA.
Signed-off-by: Jack Morgenstein <jackm at mellanox.co.il>
diff --git a/kernel_patches/fixes/core_0110_xrc_rcv.patch b/kernel_patches/fixes/core_0110_xrc_rcv.patch
index 56b9ac4..c5b5af4 100644
--- a/kernel_patches/fixes/core_0110_xrc_rcv.patch
+++ b/kernel_patches/fixes/core_0110_xrc_rcv.patch
@@ -183,7 +183,7 @@ Index: ofed_kernel/drivers/infiniband/core/uverbs_cmd.c
{
struct inode *inode = NULL;
int ret = 0;
-@@ -2625,4 +2640,352 @@ void ib_uverbs_dealloc_xrcd(struct ib_de
+@@ -2625,4 +2640,351 @@ void ib_uverbs_dealloc_xrcd(struct ib_de
xrcd_table_delete(ib_dev, inode);
}
@@ -475,8 +475,7 @@ Index: ofed_kernel/drivers/infiniband/core/uverbs_cmd.c
+ if (cmd.qp_num == tmp->qp_num) {
+ kfree(qp_obj);
+ mutex_unlock(&file->mutex);
-+ put_xrcd_read(xrcd_uobj);
-+ return 0;
++ return in_len;
+ }
+ qp_obj->qp_num = cmd.qp_num;
+ qp_obj->domain_handle = cmd.xrc_domain_handle;
More information about the general
mailing list