IB: Set IOVA/LENGTH on IB_MR in core/uverbs layers
[linux-2.6-microblaze.git] / drivers / infiniband / core / uverbs_cmd.c
index 046376b..4796f6a 100644 (file)
@@ -739,6 +739,7 @@ static int ib_uverbs_reg_mr(struct uverbs_attr_bundle *attrs)
        mr->uobject = uobj;
        atomic_inc(&pd->usecnt);
        mr->iova = cmd.hca_va;
+       mr->length = cmd.length;
 
        rdma_restrack_new(&mr->res, RDMA_RESTRACK_MR);
        rdma_restrack_set_name(&mr->res, NULL);
@@ -861,8 +862,10 @@ static int ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs)
                        mr->pd = new_pd;
                        atomic_inc(&new_pd->usecnt);
                }
-               if (cmd.flags & IB_MR_REREG_TRANS)
+               if (cmd.flags & IB_MR_REREG_TRANS) {
                        mr->iova = cmd.hca_va;
+                       mr->length = cmd.length;
+               }
        }
 
        memset(&resp, 0, sizeof(resp));