summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/qib/qib_verbs.c
diff options
context:
space:
mode:
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");