Commit 679eb25d authored by Dean Luick's avatar Dean Luick Committed by Leon Romanovsky
Browse files

RDMA/rdmavt: Add ucontext alloc/dealloc passthrough



Add a private data pointer to the ucontext structure and add
per-client pass-throughs.

Signed-off-by: default avatarDean Luick <dean.luick@cornelisnetworks.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Link: https://patch.msgid.link/177325008318.52243.7367786996925601681.stgit@awdrv-04.cornelisnetworks.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent 786ee8dd
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -244,6 +244,10 @@ static int rvt_query_gid(struct ib_device *ibdev, u32 port_num,
 */
static int rvt_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata)
{
	struct rvt_dev_info *rdi = ib_to_rvt(uctx->device);

	if (rdi->driver_f.alloc_ucontext)
		return rdi->driver_f.alloc_ucontext(uctx, udata);
	return 0;
}

@@ -253,6 +257,10 @@ static int rvt_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata)
 */
static void rvt_dealloc_ucontext(struct ib_ucontext *context)
{
	struct rvt_dev_info *rdi = ib_to_rvt(context->device);

	if (rdi->driver_f.dealloc_ucontext)
		rdi->driver_f.dealloc_ucontext(context);
	return;
}

+7 −0
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ struct rvt_driver_params {
/* User context */
struct rvt_ucontext {
	struct ib_ucontext ibucontext;
	void *priv;
};

/* Protection domain */
@@ -359,6 +360,12 @@ struct rvt_driver_provided {

	/* Get and return CPU to pin CQ processing thread */
	int (*comp_vect_cpu_lookup)(struct rvt_dev_info *rdi, int comp_vect);

	/* allocate a ucontext */
	int (*alloc_ucontext)(struct ib_ucontext *uctx, struct ib_udata *udata);

	/* deallocate a ucontext */
	void (*dealloc_ucontext)(struct ib_ucontext *context);
};

struct rvt_dev_info {