Commit 6c43cf4b authored by Harish Chegondi's avatar Harish Chegondi Committed by Doug Ledford

IB/rdmavt: Add IB user context allocation and de-alloction functions

Adding IB user context alloc and dealloc functions to rdmavt so that the
drivers that use rdmavt can use these functions instead of defining their
own functions.
Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 894c727b
...@@ -189,6 +189,16 @@ static int rvt_query_gid(struct ib_device *ibdev, u8 port, ...@@ -189,6 +189,16 @@ static int rvt_query_gid(struct ib_device *ibdev, u8 port,
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
struct rvt_ucontext {
struct ib_ucontext ibucontext;
};
static inline struct rvt_ucontext *to_iucontext(struct ib_ucontext
*ibucontext)
{
return container_of(ibucontext, struct rvt_ucontext, ibucontext);
}
/** /**
* rvt_alloc_ucontext - Allocate a user context * rvt_alloc_ucontext - Allocate a user context
* @ibdev: Vers IB dev * @ibdev: Vers IB dev
...@@ -197,7 +207,12 @@ static int rvt_query_gid(struct ib_device *ibdev, u8 port, ...@@ -197,7 +207,12 @@ static int rvt_query_gid(struct ib_device *ibdev, u8 port,
static struct ib_ucontext *rvt_alloc_ucontext(struct ib_device *ibdev, static struct ib_ucontext *rvt_alloc_ucontext(struct ib_device *ibdev,
struct ib_udata *udata) struct ib_udata *udata)
{ {
return ERR_PTR(-EOPNOTSUPP); struct rvt_ucontext *context;
context = kmalloc(sizeof(*context), GFP_KERNEL);
if (!context)
return ERR_PTR(-ENOMEM);
return &context->ibucontext;
} }
/** /**
...@@ -206,7 +221,8 @@ static struct ib_ucontext *rvt_alloc_ucontext(struct ib_device *ibdev, ...@@ -206,7 +221,8 @@ static struct ib_ucontext *rvt_alloc_ucontext(struct ib_device *ibdev,
*/ */
static int rvt_dealloc_ucontext(struct ib_ucontext *context) static int rvt_dealloc_ucontext(struct ib_ucontext *context)
{ {
return -EOPNOTSUPP; kfree(to_iucontext(context));
return 0;
} }
static int rvt_get_port_immutable(struct ib_device *ibdev, u8 port_num, static int rvt_get_port_immutable(struct ib_device *ibdev, u8 port_num,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment