Merge branches 'bart-srp', 'generic-errors', 'ira-cleanups' and 'mwang-v8' into k...
[deliverable/linux.git] / drivers / infiniband / hw / qib / qib_verbs.c
index 9fd4b285e5e523ae38323eee937bf92be7e2a17e..dba1c92f1a544710cdc70d7f6dc331cee87a337a 100644 (file)
@@ -1650,12 +1650,6 @@ static int qib_query_port(struct ib_device *ibdev, u8 port,
        return 0;
 }
 
-static enum rdma_protocol_type
-qib_query_protocol(struct ib_device *device, u8 port_num)
-{
-       return RDMA_PROTOCOL_IB;
-}
-
 static int qib_modify_device(struct ib_device *device,
                             int device_modify_mask,
                             struct ib_device_modify *device_modify)
@@ -2046,6 +2040,23 @@ static void init_ibport(struct qib_pportdata *ppd)
        RCU_INIT_POINTER(ibp->qp1, NULL);
 }
 
+static int qib_port_immutable(struct ib_device *ibdev, u8 port_num,
+                             struct ib_port_immutable *immutable)
+{
+       struct ib_port_attr attr;
+       int err;
+
+       err = qib_query_port(ibdev, port_num, &attr);
+       if (err)
+               return err;
+
+       immutable->pkey_tbl_len = attr.pkey_tbl_len;
+       immutable->gid_tbl_len = attr.gid_tbl_len;
+       immutable->core_cap_flags = RDMA_CORE_PORT_IBA_IB;
+
+       return 0;
+}
+
 /**
  * qib_register_ib_device - register our device with the infiniband core
  * @dd: the device data structure
@@ -2190,7 +2201,6 @@ int qib_register_ib_device(struct qib_devdata *dd)
        ibdev->query_device = qib_query_device;
        ibdev->modify_device = qib_modify_device;
        ibdev->query_port = qib_query_port;
-       ibdev->query_protocol = qib_query_protocol;
        ibdev->modify_port = qib_modify_port;
        ibdev->query_pkey = qib_query_pkey;
        ibdev->query_gid = qib_query_gid;
@@ -2234,6 +2244,7 @@ int qib_register_ib_device(struct qib_devdata *dd)
        ibdev->process_mad = qib_process_mad;
        ibdev->mmap = qib_mmap;
        ibdev->dma_ops = &qib_dma_mapping_ops;
+       ibdev->get_port_immutable = qib_port_immutable;
 
        snprintf(ibdev->node_desc, sizeof(ibdev->node_desc),
                 "Intel Infiniband HCA %s", init_utsname()->nodename);
This page took 0.025428 seconds and 5 git commands to generate.