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

Roland Dreier rdreier at cisco.com
Tue Feb 19 10:43:54 PST 2008


OK, I added this to for-2.6.25:

commit b7f9c112a5e7f68d77a31c79f5942a3272ae9a3b
Author: Roland Dreier <rolandd at cisco.com>
Date:   Tue Feb 19 10:42:50 2008 -0800

    IB/mthca: Free correct MPT on error exit from mthca_fmr_alloc()
    
    When mthca_fmr_alloc() returns an error, it should free the MPT at the
    index key, not mr->ibmr.lkey, since the lkey has been mangled by
    hw_index_to_key() and no longer is the real index.  This bug causes
    corruption of the MPT table free bitmap when mthca_fmr_alloc() fails.
    
    Signed-off-by: Roland Dreier <rolandd at cisco.com>

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