Browse Source

RDMA/cxgb3: Handle build_phys_page_list() failure in iwch_reregister_phys_mem()

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Steve Wise 18 years ago
parent
commit
d601347188
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/infiniband/hw/cxgb3/iwch_provider.c

+ 4 - 1
drivers/infiniband/hw/cxgb3/iwch_provider.c

@@ -545,11 +545,14 @@ static int iwch_reregister_phys_mem(struct ib_mr *mr,
 		php = to_iwch_pd(pd);
 	if (mr_rereg_mask & IB_MR_REREG_ACCESS)
 		mh.attr.perms = iwch_ib_to_tpt_access(acc);
-	if (mr_rereg_mask & IB_MR_REREG_TRANS)
+	if (mr_rereg_mask & IB_MR_REREG_TRANS) {
 		ret = build_phys_page_list(buffer_list, num_phys_buf,
 					   iova_start,
 					   &total_size, &npages,
 					   &shift, &page_list);
+		if (ret)
+			return ret;
+	}
 
 	ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages);
 	kfree(page_list);