diff options
| author | David S. Miller <davem@davemloft.net> | 2019-04-17 11:26:25 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-04-17 11:26:25 -0700 |
| commit | 6b0a7f84ea1fe248df96ccc4dd86e817e32ef65b (patch) | |
| tree | 0a7976054052e793da782c2b7ec34eccfbf66449 /drivers/infiniband/hw/hns/hns_roce_hem.c | |
| parent | cea0aa9cbd5ad4efe267e9487ed5d48d16756253 (diff) | |
| parent | fe5cdef29e41c8bda8cd1a11545e7c6bfe25570e (diff) | |
| download | cachepc-linux-6b0a7f84ea1fe248df96ccc4dd86e817e32ef65b.tar.gz cachepc-linux-6b0a7f84ea1fe248df96ccc4dd86e817e32ef65b.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflict resolution of af_smc.c from Stephen Rothwell.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/infiniband/hw/hns/hns_roce_hem.c')
| -rw-r--r-- | drivers/infiniband/hw/hns/hns_roce_hem.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c index f1fec56f3ff4..8e29dbb5b5fb 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hem.c +++ b/drivers/infiniband/hw/hns/hns_roce_hem.c @@ -792,6 +792,8 @@ void *hns_roce_table_find(struct hns_roce_dev *hr_dev, idx_offset = (obj & (table->num_obj - 1)) % obj_per_chunk; dma_offset = offset = idx_offset * table->obj_size; } else { + u32 seg_size = 64; /* 8 bytes per BA and 8 BA per segment */ + hns_roce_calc_hem_mhop(hr_dev, table, &mhop_obj, &mhop); /* mtt mhop */ i = mhop.l0_idx; @@ -803,8 +805,8 @@ void *hns_roce_table_find(struct hns_roce_dev *hr_dev, hem_idx = i; hem = table->hem[hem_idx]; - dma_offset = offset = (obj & (table->num_obj - 1)) * - table->obj_size % mhop.bt_chunk_size; + dma_offset = offset = (obj & (table->num_obj - 1)) * seg_size % + mhop.bt_chunk_size; if (mhop.hop_num == 2) dma_offset = offset = 0; } |
