dd->verbs_dev.rdi.wc_opcode = ib_qib_wc_opcode;
 }
 
+static const struct ib_device_ops qib_dev_ops = {
+       .modify_device = qib_modify_device,
+       .process_mad = qib_process_mad,
+};
+
 /**
  * qib_register_ib_device - register our device with the infiniband core
  * @dd: the device data structure
        ibdev->node_guid = ppd->guid;
        ibdev->phys_port_cnt = dd->num_pports;
        ibdev->dev.parent = &dd->pcidev->dev;
-       ibdev->modify_device = qib_modify_device;
-       ibdev->process_mad = qib_process_mad;
 
        snprintf(ibdev->node_desc, sizeof(ibdev->node_desc),
                 "Intel Infiniband HCA %s", init_utsname()->nodename);
        }
        rdma_set_device_sysfs_group(&dd->verbs_dev.rdi.ibdev, &qib_attr_group);
 
+       ib_set_device_ops(ibdev, &qib_dev_ops);
        ret = rvt_register_device(&dd->verbs_dev.rdi, RDMA_DRIVER_QIB);
        if (ret)
                goto err_tx;