[rds-devel] Re: [PATCH] Implement our own RDMA MR pool

Roland Dreier rdreier at cisco.com
Wed Feb 6 09:36:07 PST 2008


 > As I said in another message, I was relying on ib_alloc_fmr to return an error
 > when it hits some internal limit. It does that now, but apparently it leaves
 > the driver in an inconsistent state.

This made me read over the mthca implementation of FMRs carefully, and
I think I see a bug.  Can you try the patch below and see if it makes
a difference?

diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
index 3b69855..3538da1 100644
--- a/drivers/infiniband/hw/mthca/mthca_mr.c
+++ b/drivers/infiniband/hw/mthca/mthca_mr.c
@@ -686,7 +686,7 @@ err_out_table:
 	mthca_table_put(dev, dev->mr_table.mpt_table, key);
 
 err_out_mpt_free:
-	mthca_free(&dev->mr_table.mpt_alloc, mr->ibmr.lkey);
+	mthca_free(&dev->mr_table.mpt_alloc, key);
 	return err;
 }
 



More information about the rds-devel mailing list