Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6013471 authored by Steve Wise's avatar Steve Wise Committed by Roland Dreier
Browse files

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

parent fae8773b
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -545,11 +545,14 @@ static int iwch_reregister_phys_mem(struct ib_mr *mr,
		php = to_iwch_pd(pd);
		php = to_iwch_pd(pd);
	if (mr_rereg_mask & IB_MR_REREG_ACCESS)
	if (mr_rereg_mask & IB_MR_REREG_ACCESS)
		mh.attr.perms = iwch_ib_to_tpt_access(acc);
		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,
		ret = build_phys_page_list(buffer_list, num_phys_buf,
					   iova_start,
					   iova_start,
					   &total_size, &npages,
					   &total_size, &npages,
					   &shift, &page_list);
					   &shift, &page_list);
		if (ret)
			return ret;
	}


	ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages);
	ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages);
	kfree(page_list);
	kfree(page_list);