diff options
author | Steve Wise <swise@opengridcomputing.com> | 2014-03-19 17:44:45 +0530 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-03-20 10:01:30 -0700 |
commit | eda6d1d1b7932f90d55583f8f3835dd7d6b32543 (patch) | |
tree | 2fdd9abff8b60ffa4f8c60209f3e1be6f515917b /drivers/infiniband/hw/cxgb4/iw_cxgb4.h | |
parent | df2d5130ece9118591c2f3fbf0ee4a79183b4ccc (diff) |
RDMA/cxgb4: Save the correct map length for fast_reg_page_lists
We cannot save the mapped length using the rdma max_page_list_len field
of the ib_fast_reg_page_list struct because the core code uses it. This
results in an incorrect unmap of the page list in c4iw_free_fastreg_pbl().
I found this with dma mapping debugging enabled in the kernel. The
fix is to save the length in the c4iw_fr_page_list struct.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/iw_cxgb4.h')
-rw-r--r-- | drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h index b810d2a89d0..a1e8f1333b7 100644 --- a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h +++ b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h @@ -369,6 +369,7 @@ struct c4iw_fr_page_list { DEFINE_DMA_UNMAP_ADDR(mapping); dma_addr_t dma_addr; struct c4iw_dev *dev; + int pll_len; }; static inline struct c4iw_fr_page_list *to_c4iw_fr_page_list( |