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

Commit 9a21be53 authored by Sagi Grimberg's avatar Sagi Grimberg Committed by Doug Ledford
Browse files

IB/srp: Dont allocate a page vector when using fast_reg



The new fast registration API does not reuqire a page vector
so we can't avoid allocating it.

Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
Tested-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 51c2b8e2
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -840,11 +840,12 @@ static void srp_free_req_data(struct srp_target_port *target,

	for (i = 0; i < target->req_ring_size; ++i) {
		req = &ch->req_ring[i];
		if (dev->use_fast_reg)
		if (dev->use_fast_reg) {
			kfree(req->fr_list);
		else
		} else {
			kfree(req->fmr_list);
			kfree(req->map_page);
		}
		if (req->indirect_dma_addr) {
			ib_dma_unmap_single(ibdev, req->indirect_dma_addr,
					    target->indirect_size,
@@ -878,14 +879,15 @@ static int srp_alloc_req_data(struct srp_rdma_ch *ch)
				  GFP_KERNEL);
		if (!mr_list)
			goto out;
		if (srp_dev->use_fast_reg)
		if (srp_dev->use_fast_reg) {
			req->fr_list = mr_list;
		else
		} else {
			req->fmr_list = mr_list;
			req->map_page = kmalloc(srp_dev->max_pages_per_mr *
						sizeof(void *), GFP_KERNEL);
			if (!req->map_page)
				goto out;
		}
		req->indirect_desc = kmalloc(target->indirect_size, GFP_KERNEL);
		if (!req->indirect_desc)
			goto out;