RDMA/bnxt_re: Correct FRMR size calculation
[linux-2.6-microblaze.git] / drivers / infiniband / hw / bnxt_re / ib_verbs.c
index 1654260..938088f 100644 (file)
@@ -2488,7 +2488,8 @@ static int bnxt_re_build_reg_wqe(const struct ib_reg_wr *wr,
 
        wqe->frmr.l_key = wr->key;
        wqe->frmr.length = wr->mr->length;
-       wqe->frmr.pbl_pg_sz_log = (wr->mr->page_size >> PAGE_SHIFT_4K) - 1;
+       wqe->frmr.pbl_pg_sz_log = ilog2(PAGE_SIZE >> PAGE_SHIFT_4K);
+       wqe->frmr.pg_sz_log = ilog2(wr->mr->page_size >> PAGE_SHIFT_4K);
        wqe->frmr.va = wr->mr->iova;
        return 0;
 }