diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch_provider.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c index f2774ae906bf..24e0df04f7db 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_provider.c +++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c | |||
@@ -545,11 +545,14 @@ static int iwch_reregister_phys_mem(struct ib_mr *mr, | |||
545 | php = to_iwch_pd(pd); | 545 | php = to_iwch_pd(pd); |
546 | if (mr_rereg_mask & IB_MR_REREG_ACCESS) | 546 | if (mr_rereg_mask & IB_MR_REREG_ACCESS) |
547 | mh.attr.perms = iwch_ib_to_tpt_access(acc); | 547 | mh.attr.perms = iwch_ib_to_tpt_access(acc); |
548 | if (mr_rereg_mask & IB_MR_REREG_TRANS) | 548 | if (mr_rereg_mask & IB_MR_REREG_TRANS) { |
549 | ret = build_phys_page_list(buffer_list, num_phys_buf, | 549 | ret = build_phys_page_list(buffer_list, num_phys_buf, |
550 | iova_start, | 550 | iova_start, |
551 | &total_size, &npages, | 551 | &total_size, &npages, |
552 | &shift, &page_list); | 552 | &shift, &page_list); |
553 | if (ret) | ||
554 | return ret; | ||
555 | } | ||
553 | 556 | ||
554 | ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages); | 557 | ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages); |
555 | kfree(page_list); | 558 | kfree(page_list); |