]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
RDMA: Rename port_callback to init_port
authorParav Pandit <parav@mellanox.com>
Tue, 18 Dec 2018 12:28:30 +0000 (14:28 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 14 Jan 2019 20:05:14 +0000 (13:05 -0700)
Most provider routines are callback routines which ib core invokes.
_callback suffix doesn't convey information about when such callback is
invoked. Therefore, rename port_callback to init_port.

Additionally, store the init_port function pointer in ib_device_ops, so
that it can be accessed in subsequent patches when binding rdma device to
net namespace.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
22 files changed:
drivers/infiniband/core/core_priv.h
drivers/infiniband/core/device.c
drivers/infiniband/core/sysfs.c
drivers/infiniband/hw/bnxt_re/main.c
drivers/infiniband/hw/cxgb3/iwch_provider.c
drivers/infiniband/hw/cxgb4/provider.c
drivers/infiniband/hw/hfi1/verbs.c
drivers/infiniband/hw/hns/hns_roce_main.c
drivers/infiniband/hw/i40iw/i40iw_verbs.c
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mthca/mthca_provider.c
drivers/infiniband/hw/nes/nes_verbs.c
drivers/infiniband/hw/ocrdma/ocrdma_main.c
drivers/infiniband/hw/qedr/main.c
drivers/infiniband/hw/qib/qib_verbs.c
drivers/infiniband/hw/usnic/usnic_ib_main.c
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
drivers/infiniband/sw/rdmavt/vt.c
drivers/infiniband/sw/rxe/rxe_verbs.c
include/rdma/ib_verbs.h
include/rdma/rdma_vt.h

index 3cd830d52967eb252d6646094a46f52e0e003174..aca75c74e451c61ca3a776d13581141809f30468 100644 (file)
@@ -54,9 +54,7 @@ struct pkey_index_qp_list {
        struct list_head    qp_list;
 };
 
-int  ib_device_register_sysfs(struct ib_device *device,
-                             int (*port_callback)(struct ib_device *,
-                                                  u8, struct kobject *));
+int ib_device_register_sysfs(struct ib_device *device);
 void ib_device_unregister_sysfs(struct ib_device *device);
 int ib_device_rename(struct ib_device *ibdev, const char *name);
 
index 8872453e26c07c65c12b2aca5f9f14a6924f91f7..66867e92ddea194cb94a30fda4cc362d63a28f98 100644 (file)
@@ -574,9 +574,7 @@ static int setup_device(struct ib_device *device)
  * callback for each device that is added. @device must be allocated
  * with ib_alloc_device().
  */
-int ib_register_device(struct ib_device *device, const char *name,
-                      int (*port_callback)(struct ib_device *, u8,
-                                           struct kobject *))
+int ib_register_device(struct ib_device *device, const char *name)
 {
        int ret;
        struct ib_client *client;
@@ -613,7 +611,7 @@ int ib_register_device(struct ib_device *device, const char *name,
                goto dev_cleanup;
        }
 
-       ret = ib_device_register_sysfs(device, port_callback);
+       ret = ib_device_register_sysfs(device);
        if (ret) {
                dev_warn(&device->dev,
                         "Couldn't register device with driver model\n");
@@ -1283,6 +1281,7 @@ void ib_set_device_ops(struct ib_device *dev, const struct ib_device_ops *ops)
        SET_DEVICE_OP(dev_ops, get_vector_affinity);
        SET_DEVICE_OP(dev_ops, get_vf_config);
        SET_DEVICE_OP(dev_ops, get_vf_stats);
+       SET_DEVICE_OP(dev_ops, init_port);
        SET_DEVICE_OP(dev_ops, map_mr_sg);
        SET_DEVICE_OP(dev_ops, map_phys_fmr);
        SET_DEVICE_OP(dev_ops, mmap);
index 80f68eb0ba5c4cbeaf7512b4778febc49e820e11..7a5679933df60dcb00fa1dbaf8f4c6ab369f7367 100644 (file)
@@ -1015,9 +1015,7 @@ static void setup_hw_stats(struct ib_device *device, struct ib_port *port,
        return;
 }
 
-static int add_port(struct ib_device *device, int port_num,
-                   int (*port_callback)(struct ib_device *,
-                                        u8, struct kobject *))
+static int add_port(struct ib_device *device, int port_num)
 {
        struct ib_port *p;
        struct ib_port_attr attr;
@@ -1113,8 +1111,8 @@ static int add_port(struct ib_device *device, int port_num,
        if (ret)
                goto err_free_pkey;
 
-       if (port_callback) {
-               ret = port_callback(device, port_num, &p->kobj);
+       if (device->ops.init_port) {
+               ret = device->ops.init_port(device, port_num, &p->kobj);
                if (ret)
                        goto err_remove_pkey;
        }
@@ -1308,9 +1306,7 @@ static void free_port_list_attributes(struct ib_device *device)
        kobject_put(device->ports_kobj);
 }
 
-int ib_device_register_sysfs(struct ib_device *device,
-                            int (*port_callback)(struct ib_device *,
-                                                 u8, struct kobject *))
+int ib_device_register_sysfs(struct ib_device *device)
 {
        struct device *class_dev = &device->dev;
        int ret;
@@ -1330,12 +1326,12 @@ int ib_device_register_sysfs(struct ib_device *device,
        }
 
        if (rdma_cap_ib_switch(device)) {
-               ret = add_port(device, 0, port_callback);
+               ret = add_port(device, 0);
                if (ret)
                        goto err_put;
        } else {
                for (i = 1; i <= device->phys_port_cnt; ++i) {
-                       ret = add_port(device, i, port_callback);
+                       ret = add_port(device, i);
                        if (ret)
                                goto err_put;
                }
index e7a997f2a5374a8205c822ba07535d5a65153dc7..797a3e943366960e3193390c13c1ac9c02d7c535 100644 (file)
@@ -662,7 +662,7 @@ static int bnxt_re_register_ib(struct bnxt_re_dev *rdev)
        rdma_set_device_sysfs_group(ibdev, &bnxt_re_dev_attr_group);
        ibdev->driver_id = RDMA_DRIVER_BNXT_RE;
        ib_set_device_ops(ibdev, &bnxt_re_dev_ops);
-       return ib_register_device(ibdev, "bnxt_re%d", NULL);
+       return ib_register_device(ibdev, "bnxt_re%d");
 }
 
 static void bnxt_re_dev_remove(struct bnxt_re_dev *rdev)
index 92ee6761a3bdf916e57167b20ec4affa43973465..ffdde3cca268f590393345022858eba6ee0f0be3 100644 (file)
@@ -1409,7 +1409,7 @@ int iwch_register_device(struct iwch_dev *dev)
        dev->ibdev.driver_id = RDMA_DRIVER_CXGB3;
        rdma_set_device_sysfs_group(&dev->ibdev, &iwch_attr_group);
        ib_set_device_ops(&dev->ibdev, &iwch_dev_ops);
-       ret = ib_register_device(&dev->ibdev, "cxgb3_%d", NULL);
+       ret = ib_register_device(&dev->ibdev, "cxgb3_%d");
        if (ret)
                kfree(dev->ibdev.iwcm);
        return ret;
index 586b0c37481f18b575d9a92d95c718c3ed809fd2..0a99894b0160f2d921f32a28453f7358168f5549 100644 (file)
@@ -634,7 +634,7 @@ void c4iw_register_device(struct work_struct *work)
        rdma_set_device_sysfs_group(&dev->ibdev, &c4iw_attr_group);
        dev->ibdev.driver_id = RDMA_DRIVER_CXGB4;
        ib_set_device_ops(&dev->ibdev, &c4iw_dev_ops);
-       ret = ib_register_device(&dev->ibdev, "cxgb4_%d", NULL);
+       ret = ib_register_device(&dev->ibdev, "cxgb4_%d");
        if (ret)
                goto err_kfree_iwcm;
        return;
index ec582d86025f0288a4fad9a9a825cddea3744ed3..8957adf58af7ba6d5d52e185135071f86cd78b71 100644 (file)
@@ -1622,6 +1622,7 @@ static const struct ib_device_ops hfi1_dev_ops = {
        .alloc_rdma_netdev = hfi1_vnic_alloc_rn,
        .get_dev_fw_str = hfi1_get_dev_fw_str,
        .get_hw_stats = get_hw_stats,
+       .init_port = hfi1_create_port_files,
        .modify_device = modify_device,
        /* keep process mad in the driver */
        .process_mad = hfi1_process_mad,
@@ -1679,7 +1680,6 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
        /*
         * Fill in rvt info object.
         */
-       dd->verbs_dev.rdi.driver_f.port_callback = hfi1_create_port_files;
        dd->verbs_dev.rdi.driver_f.get_pci_dev = get_pci_dev;
        dd->verbs_dev.rdi.driver_f.check_ah = hfi1_check_ah;
        dd->verbs_dev.rdi.driver_f.notify_new_ah = hfi1_notify_new_ah;
index 44a07fce0617743bea0efe03ec08b768fb3f5870..46ede58ef3b80d066198b3f248fc29385d4eee86 100644 (file)
@@ -564,7 +564,7 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
        ib_dev->driver_id = RDMA_DRIVER_HNS;
        ib_set_device_ops(ib_dev, hr_dev->hw->hns_roce_dev_ops);
        ib_set_device_ops(ib_dev, &hns_roce_dev_ops);
-       ret = ib_register_device(ib_dev, "hns_%d", NULL);
+       ret = ib_register_device(ib_dev, "hns_%d");
        if (ret) {
                dev_err(dev, "ib_register_device failed!\n");
                return ret;
index 80b66df95362f9cf6d5ace21eaa20e5fb96a2dd1..af66ab9d150b097f6050483533dff688ad805bc1 100644 (file)
@@ -2868,7 +2868,7 @@ int i40iw_register_rdma_device(struct i40iw_device *iwdev)
        iwibdev = iwdev->iwibdev;
        rdma_set_device_sysfs_group(&iwibdev->ibdev, &i40iw_attr_group);
        iwibdev->ibdev.driver_id = RDMA_DRIVER_I40IW;
-       ret = ib_register_device(&iwibdev->ibdev, "i40iw%d", NULL);
+       ret = ib_register_device(&iwibdev->ibdev, "i40iw%d");
        if (ret)
                goto error;
 
index 1f15ec3e2b8337569aac9e652e553df6b5539c45..c3f950d82ed02e11d7560c5ec3f1ce9822951e4d 100644 (file)
@@ -2856,7 +2856,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
 
        rdma_set_device_sysfs_group(&ibdev->ib_dev, &mlx4_attr_group);
        ibdev->ib_dev.driver_id = RDMA_DRIVER_MLX4;
-       if (ib_register_device(&ibdev->ib_dev, "mlx4_%d", NULL))
+       if (ib_register_device(&ibdev->ib_dev, "mlx4_%d"))
                goto err_diag_counters;
 
        if (mlx4_ib_mad_init(ibdev))
index 717e8535b41a4b0b6d4417744030668e1eb95dcd..948617a60d44066b7014cbedf3189ac34c2fb552 100644 (file)
@@ -6233,7 +6233,7 @@ int mlx5_ib_stage_ib_reg_init(struct mlx5_ib_dev *dev)
                name = "mlx5_%d";
        else
                name = "mlx5_bond_%d";
-       return ib_register_device(&dev->ib_dev, name, NULL);
+       return ib_register_device(&dev->ib_dev, name);
 }
 
 void mlx5_ib_stage_pre_ib_reg_umr_cleanup(struct mlx5_ib_dev *dev)
index 0a939ea5497b6d7143a2e11c16036fdfaea2ace1..3473c6c51b929fb93409e577dc0ff9040edd1794 100644 (file)
@@ -1338,7 +1338,7 @@ int mthca_register_device(struct mthca_dev *dev)
 
        rdma_set_device_sysfs_group(&dev->ib_dev, &mthca_attr_group);
        dev->ib_dev.driver_id = RDMA_DRIVER_MTHCA;
-       ret = ib_register_device(&dev->ib_dev, "mthca%d", NULL);
+       ret = ib_register_device(&dev->ib_dev, "mthca%d");
        if (ret)
                return ret;
 
index feb4d259aab9c288272b188877c1619cff8ca397..34601f0cbd745069b5e4331f763581609d364e4e 100644 (file)
@@ -3801,7 +3801,7 @@ int nes_register_ofa_device(struct nes_ib_device *nesibdev)
 
        rdma_set_device_sysfs_group(&nesvnic->nesibdev->ibdev, &nes_attr_group);
        nesvnic->nesibdev->ibdev.driver_id = RDMA_DRIVER_NES;
-       ret = ib_register_device(&nesvnic->nesibdev->ibdev, "nes%d", NULL);
+       ret = ib_register_device(&nesvnic->nesibdev->ibdev, "nes%d");
        if (ret) {
                return ret;
        }
index 1f393842453aad54316a325b866f3895eed10422..f45b996f617fae5ee0cc8373d22cd8f281cfa36c 100644 (file)
@@ -243,7 +243,7 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
        }
        rdma_set_device_sysfs_group(&dev->ibdev, &ocrdma_attr_group);
        dev->ibdev.driver_id = RDMA_DRIVER_OCRDMA;
-       return ib_register_device(&dev->ibdev, "ocrdma%d", NULL);
+       return ib_register_device(&dev->ibdev, "ocrdma%d");
 }
 
 static int ocrdma_alloc_resources(struct ocrdma_dev *dev)
index 75940e2a8791b0cee14f5f65b5ddff226cc6983c..8e5c76d0685529c1b34b9b8fb875752383cff8b6 100644 (file)
@@ -290,7 +290,7 @@ static int qedr_register_device(struct qedr_dev *dev)
        ib_set_device_ops(&dev->ibdev, &qedr_dev_ops);
 
        dev->ibdev.driver_id = RDMA_DRIVER_QEDR;
-       return ib_register_device(&dev->ibdev, "qedr%d", NULL);
+       return ib_register_device(&dev->ibdev, "qedr%d");
 }
 
 /* This function allocates fast-path status block memory */
index 276304f611abc29c8c5519ab7d0489e305e80399..ff8dab8e234429c74224bd55553dcdddac3fc980 100644 (file)
@@ -1494,6 +1494,7 @@ static void qib_fill_device_attr(struct qib_devdata *dd)
 }
 
 static const struct ib_device_ops qib_dev_ops = {
+       .init_port = qib_create_port_files,
        .modify_device = qib_modify_device,
        .process_mad = qib_process_mad,
 };
@@ -1567,7 +1568,6 @@ int qib_register_ib_device(struct qib_devdata *dd)
        /*
         * Fill in rvt info object.
         */
-       dd->verbs_dev.rdi.driver_f.port_callback = qib_create_port_files;
        dd->verbs_dev.rdi.driver_f.get_pci_dev = qib_get_pci_dev;
        dd->verbs_dev.rdi.driver_f.check_ah = qib_check_ah;
        dd->verbs_dev.rdi.driver_f.setup_wqe = qib_check_send_wqe;
index b2323a52a0ddb75195f0c598143676db4e2cd012..3201dd1899c7a63afb8ee73a657e6ce4c257b8a3 100644 (file)
@@ -422,7 +422,7 @@ static void *usnic_ib_device_add(struct pci_dev *dev)
        us_ibdev->ib_dev.driver_id = RDMA_DRIVER_USNIC;
        rdma_set_device_sysfs_group(&us_ibdev->ib_dev, &usnic_attr_group);
 
-       if (ib_register_device(&us_ibdev->ib_dev, "usnic_%d", NULL))
+       if (ib_register_device(&us_ibdev->ib_dev, "usnic_%d"))
                goto err_fwd_dealloc;
 
        usnic_fwd_set_mtu(us_ibdev->ufdev, us_ibdev->netdev->mtu);
index eaa109dbc96a0531e83bfd5060c1407c004bb8f8..1bc415483d9b893660d96924f56995e528e68f06 100644 (file)
@@ -278,7 +278,7 @@ static int pvrdma_register_device(struct pvrdma_dev *dev)
        spin_lock_init(&dev->srq_tbl_lock);
        rdma_set_device_sysfs_group(&dev->ib_dev, &pvrdma_attr_group);
 
-       ret = ib_register_device(&dev->ib_dev, "vmw_pvrdma%d", NULL);
+       ret = ib_register_device(&dev->ib_dev, "vmw_pvrdma%d");
        if (ret)
                goto err_srq_free;
 
index 8724a18171584c56b2007b0f0eb19c431452c1dd..7de7389d02350cda023adb74e11eee446001ac4f 100644 (file)
@@ -446,7 +446,7 @@ static noinline int check_support(struct rvt_dev_info *rdi, int verb)
                 * These functions are not part of verbs specifically but are
                 * required for rdmavt to function.
                 */
-               if ((!rdi->driver_f.port_callback) ||
+               if ((!rdi->ibdev.ops.init_port) ||
                    (!rdi->driver_f.get_pci_dev))
                        return -EINVAL;
                break;
@@ -644,8 +644,7 @@ int rvt_register_device(struct rvt_dev_info *rdi, u32 driver_id)
 
        rdi->ibdev.driver_id = driver_id;
        /* We are now good to announce we exist */
-       ret = ib_register_device(&rdi->ibdev, dev_name(&rdi->ibdev.dev),
-                                rdi->driver_f.port_callback);
+       ret = ib_register_device(&rdi->ibdev, dev_name(&rdi->ibdev.dev));
        if (ret) {
                rvt_pr_err(rdi, "Failed to register driver with ib core.\n");
                goto bail_wss;
index b20e6e0415f54a4e951eded773f9c3a8216167b1..43171148e9c50e352fd2a61c84d9a9def6179d8d 100644 (file)
@@ -1258,7 +1258,7 @@ int rxe_register_device(struct rxe_dev *rxe)
 
        rdma_set_device_sysfs_group(dev, &rxe_attr_group);
        dev->driver_id = RDMA_DRIVER_RXE;
-       err = ib_register_device(dev, "rxe%d", NULL);
+       err = ib_register_device(dev, "rxe%d");
        if (err) {
                pr_warn("%s failed with error %d\n", __func__, err);
                goto err1;
index aa1f126d338350ca3d284374bb5a76f66492e3c5..1d1902fd9f8773ff164b92da230ab576658158c1 100644 (file)
@@ -2504,6 +2504,12 @@ struct ib_device_ops {
         */
        int (*get_hw_stats)(struct ib_device *device,
                            struct rdma_hw_stats *stats, u8 port, int index);
+       /*
+        * This function is called once for each port when a ib device is
+        * registered.
+        */
+       int (*init_port)(struct ib_device *device, u8 port_num,
+                        struct kobject *port_sysfs);
 };
 
 struct ib_device {
@@ -2620,9 +2626,7 @@ void ib_dealloc_device(struct ib_device *device);
 
 void ib_get_device_fw_str(struct ib_device *device, char *str);
 
-int ib_register_device(struct ib_device *device, const char *name,
-                      int (*port_callback)(struct ib_device *, u8,
-                                           struct kobject *));
+int ib_register_device(struct ib_device *device, const char *name);
 void ib_unregister_device(struct ib_device *device);
 
 int ib_register_client   (struct ib_client *client);
index dd0ed8048bb42bb8ffb9cde469979f87bef7afaf..acb3bc96dfa7c71601e85213695981cd85d4ca2e 100644 (file)
@@ -250,9 +250,6 @@ struct rvt_driver_provided {
         */
        void (*do_send)(struct rvt_qp *qp);
 
-       /* Passed to ib core registration. Callback to create syfs files */
-       int (*port_callback)(struct ib_device *, u8, struct kobject *);
-
        /*
         * Returns a pointer to the undelying hardware's PCI device. This is
         * used to display information as to what hardware is being referenced