aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/nes
diff options
context:
space:
mode:
authorHaggai Eran <haggaie@mellanox.com>2014-12-11 10:04:12 -0500
committerRoland Dreier <roland@purestorage.com>2014-12-15 21:13:35 -0500
commit406f9e5fa9a7a60b42e676841e39f2d752266814 (patch)
treeea6b1776793ed0ae3079d9860132a9e062801b18 /drivers/infiniband/hw/nes
parent968e78dd96443e2cc963c493070574778805e76a (diff)
IB/core: Replace ib_umem's offset field with a full address
In order to allow umems that do not pin memory, we need the umem to keep track of its region's address. This makes the offset field redundant, and so this patch removes it. Signed-off-by: Haggai Eran <haggaie@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/nes')
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index fef067c959fc..c0d0296e7a00 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2341,9 +2341,9 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
2341 nes_debug(NES_DBG_MR, "User base = 0x%lX, Virt base = 0x%lX, length = %u," 2341 nes_debug(NES_DBG_MR, "User base = 0x%lX, Virt base = 0x%lX, length = %u,"
2342 " offset = %u, page size = %u.\n", 2342 " offset = %u, page size = %u.\n",
2343 (unsigned long int)start, (unsigned long int)virt, (u32)length, 2343 (unsigned long int)start, (unsigned long int)virt, (u32)length,
2344 region->offset, region->page_size); 2344 ib_umem_offset(region), region->page_size);
2345 2345
2346 skip_pages = ((u32)region->offset) >> 12; 2346 skip_pages = ((u32)ib_umem_offset(region)) >> 12;
2347 2347
2348 if (ib_copy_from_udata(&req, udata, sizeof(req))) { 2348 if (ib_copy_from_udata(&req, udata, sizeof(req))) {
2349 ib_umem_release(region); 2349 ib_umem_release(region);
@@ -2408,7 +2408,7 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
2408 region_length -= skip_pages << 12; 2408 region_length -= skip_pages << 12;
2409 for (page_index = skip_pages; page_index < chunk_pages; page_index++) { 2409 for (page_index = skip_pages; page_index < chunk_pages; page_index++) {
2410 skip_pages = 0; 2410 skip_pages = 0;
2411 if ((page_count != 0) && (page_count<<12)-(region->offset&(4096-1)) >= region->length) 2411 if ((page_count != 0) && (page_count << 12) - (ib_umem_offset(region) & (4096 - 1)) >= region->length)
2412 goto enough_pages; 2412 goto enough_pages;
2413 if ((page_count&0x01FF) == 0) { 2413 if ((page_count&0x01FF) == 0) {
2414 if (page_count >= 1024 * 512) { 2414 if (page_count >= 1024 * 512) {