summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/qib/qib_verbs.c
diff options
context:
space:
mode:
authorDennis Dalessandro <dennis.dalessandro@intel.com>2016-01-22 12:44:29 -0800
committerDoug Ledford <dledford@redhat.com>2016-03-10 20:37:15 -0500
commit2dc05ab57f9fc28e9aa3f9eba1cd0b430a832d2c (patch)
tree9d6e2d539016b62151038586d4904b2a15b29a58 /drivers/infiniband/hw/qib/qib_verbs.c
parent38ce2c6f3ae8dda0ee42dc8474759ff949994bea (diff)
IB/qib: Begin to use rdmavt for verbs
This patch begins to make use of rdmavt by registering with it and providing access to the header files. This is just the beginning of rdmavt support in qib. Most functionality is still being done in the driver, set flags so that rdmavt will let qib continue to handle mr, qp, and cq init. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_verbs.c')
-rw-r--r--drivers/infiniband/hw/qib/qib_verbs.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/infiniband/hw/qib/qib_verbs.c b/drivers/infiniband/hw/qib/qib_verbs.c
index baf1e42b6896..f8975eac2771 100644
--- a/drivers/infiniband/hw/qib/qib_verbs.c
+++ b/drivers/infiniband/hw/qib/qib_verbs.c
@@ -2091,7 +2091,7 @@ static int qib_port_immutable(struct ib_device *ibdev, u8 port_num,
int qib_register_ib_device(struct qib_devdata *dd)
{
struct qib_ibdev *dev = &dd->verbs_dev;
- struct ib_device *ibdev = &dev->ibdev;
+ struct ib_device *ibdev = &dev->rdi.ibdev;
struct qib_pportdata *ppd = dd->pport;
unsigned i, lk_tab_size;
int ret;
@@ -2279,7 +2279,17 @@ int qib_register_ib_device(struct qib_devdata *dd)
snprintf(ibdev->node_desc, sizeof(ibdev->node_desc),
"Intel Infiniband HCA %s", init_utsname()->nodename);
- ret = ib_register_device(ibdev, qib_create_port_files);
+ /*
+ * Fill in rvt info object.
+ */
+ dd->verbs_dev.rdi.driver_f.port_callback = qib_create_port_files;
+ dd->verbs_dev.rdi.dparms.props.max_pd = ib_qib_max_pds;
+ dd->verbs_dev.rdi.flags = (RVT_FLAG_MR_INIT_DRIVER |
+ RVT_FLAG_QP_INIT_DRIVER |
+ RVT_FLAG_CQ_INIT_DRIVER);
+
+
+ ret = rvt_register_device(&dd->verbs_dev.rdi);
if (ret)
goto err_reg;
@@ -2296,7 +2306,7 @@ int qib_register_ib_device(struct qib_devdata *dd)
err_class:
qib_free_agents(dev);
err_agents:
- ib_unregister_device(ibdev);
+ rvt_unregister_device(&dd->verbs_dev.rdi);
err_reg:
err_tx:
while (!list_empty(&dev->txreq_free)) {
@@ -2325,7 +2335,6 @@ bail:
void qib_unregister_ib_device(struct qib_devdata *dd)
{
struct qib_ibdev *dev = &dd->verbs_dev;
- struct ib_device *ibdev = &dev->ibdev;
u32 qps_inuse;
unsigned lk_tab_size;
@@ -2333,7 +2342,7 @@ void qib_unregister_ib_device(struct qib_devdata *dd)
qib_free_agents(dev);
- ib_unregister_device(ibdev);
+ rvt_unregister_device(&dd->verbs_dev.rdi);
if (!list_empty(&dev->piowait))
qib_dev_err(dd, "piowait list not empty!\n");