RDMA/(core, ulp): Convert register/unregister event handler to be void
authorLeon Romanovsky <leonro@mellanox.com>
Thu, 17 Aug 2017 12:50:36 +0000 (15:50 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 24 Aug 2017 20:27:10 +0000 (16:27 -0400)
The functions ib_register_event_handler() and
ib_unregister_event_handler() always returned success and they can't fail.

Let's convert those functions to be void, remove redundant checks and
cleanup tons of goto statements.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/cache.c
drivers/infiniband/core/device.c
drivers/infiniband/core/sa_query.c
drivers/infiniband/core/uverbs_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/iser/iser_verbs.c
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
drivers/infiniband/ulp/srpt/ib_srpt.c
include/rdma/ib_verbs.h

index efc9430..7751563 100644 (file)
@@ -1199,30 +1199,23 @@ int ib_cache_setup_one(struct ib_device *device)
        device->cache.ports =
                kzalloc(sizeof(*device->cache.ports) *
                        (rdma_end_port(device) - rdma_start_port(device) + 1), GFP_KERNEL);
-       if (!device->cache.ports) {
-               err = -ENOMEM;
-               goto out;
-       }
+       if (!device->cache.ports)
+               return -ENOMEM;
 
        err = gid_table_setup_one(device);
-       if (err)
-               goto out;
+       if (err) {
+               kfree(device->cache.ports);
+               device->cache.ports = NULL;
+               return err;
+       }
 
        for (p = 0; p <= rdma_end_port(device) - rdma_start_port(device); ++p)
                ib_cache_update(device, p + rdma_start_port(device), true);
 
        INIT_IB_EVENT_HANDLER(&device->cache.event_handler,
                              device, ib_cache_event);
-       err = ib_register_event_handler(&device->cache.event_handler);
-       if (err)
-               goto err;
-
+       ib_register_event_handler(&device->cache.event_handler);
        return 0;
-
-err:
-       gid_table_cleanup_one(device);
-out:
-       return err;
 }
 
 void ib_cache_release_one(struct ib_device *device)
index fc6be11..ec47867 100644 (file)
@@ -747,7 +747,7 @@ EXPORT_SYMBOL(ib_set_client_data);
  * chapter 11 of the InfiniBand Architecture Specification).  This
  * callback may occur in interrupt context.
  */
-int ib_register_event_handler  (struct ib_event_handler *event_handler)
+void ib_register_event_handler(struct ib_event_handler *event_handler)
 {
        unsigned long flags;
 
@@ -755,8 +755,6 @@ int ib_register_event_handler  (struct ib_event_handler *event_handler)
        list_add_tail(&event_handler->list,
                      &event_handler->device->event_handler_list);
        spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
-
-       return 0;
 }
 EXPORT_SYMBOL(ib_register_event_handler);
 
@@ -767,15 +765,13 @@ EXPORT_SYMBOL(ib_register_event_handler);
  * Unregister an event handler registered with
  * ib_register_event_handler().
  */
-int ib_unregister_event_handler(struct ib_event_handler *event_handler)
+void ib_unregister_event_handler(struct ib_event_handler *event_handler)
 {
        unsigned long flags;
 
        spin_lock_irqsave(&event_handler->device->event_handler_lock, flags);
        list_del(&event_handler->list);
        spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
-
-       return 0;
 }
 EXPORT_SYMBOL(ib_unregister_event_handler);
 
index 0179b21..ab5e102 100644 (file)
@@ -2417,8 +2417,7 @@ static void ib_sa_add_one(struct ib_device *device)
         */
 
        INIT_IB_EVENT_HANDLER(&sa_dev->event_handler, device, ib_sa_event);
-       if (ib_register_event_handler(&sa_dev->event_handler))
-               goto err;
+       ib_register_event_handler(&sa_dev->event_handler);
 
        for (i = 0; i <= e - s; ++i) {
                if (rdma_cap_ib_sa(device, i + 1))
index 5e530d2..defeda3 100644 (file)
@@ -595,7 +595,6 @@ struct file *ib_uverbs_alloc_async_event_file(struct ib_uverbs_file *uverbs_file
 {
        struct ib_uverbs_async_event_file *ev_file;
        struct file *filp;
-       int ret;
 
        ev_file = kzalloc(sizeof(*ev_file), GFP_KERNEL);
        if (!ev_file)
@@ -621,21 +620,11 @@ struct file *ib_uverbs_alloc_async_event_file(struct ib_uverbs_file *uverbs_file
        INIT_IB_EVENT_HANDLER(&uverbs_file->event_handler,
                              ib_dev,
                              ib_uverbs_event_handler);
-       ret = ib_register_event_handler(&uverbs_file->event_handler);
-       if (ret)
-               goto err_put_file;
-
+       ib_register_event_handler(&uverbs_file->event_handler);
        /* At that point async file stuff was fully set */
 
        return filp;
 
-err_put_file:
-       fput(filp);
-       kref_put(&uverbs_file->async_file->ref,
-                ib_uverbs_release_async_event_file);
-       uverbs_file->async_file = NULL;
-       return ERR_PTR(ret);
-
 err_put_refs:
        kref_put(&ev_file->uverbs_file->ref, ib_uverbs_release_file);
        kref_put(&ev_file->ref, ib_uverbs_release_async_event_file);
index ee9f5d2..344e8d3 100644 (file)
@@ -2227,13 +2227,7 @@ static struct net_device *ipoib_add_port(const char *format,
 
        INIT_IB_EVENT_HANDLER(&priv->event_handler,
                              priv->ca, ipoib_event);
-       result = ib_register_event_handler(&priv->event_handler);
-       if (result < 0) {
-               printk(KERN_WARNING "%s: ib_register_event_handler failed for "
-                      "port %d (ret = %d)\n",
-                      hca->name, port, result);
-               goto event_failed;
-       }
+       ib_register_event_handler(&priv->event_handler);
 
        result = register_netdev(priv->dev);
        if (result) {
@@ -2266,8 +2260,6 @@ register_failed:
        set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags);
        cancel_delayed_work(&priv->neigh_reap_task);
        flush_workqueue(priv->wq);
-
-event_failed:
        ipoib_dev_cleanup(priv->dev);
 
 device_init_failed:
index 26a004e..55a73b0 100644 (file)
@@ -106,9 +106,7 @@ static int iser_create_device_ib_res(struct iser_device *device)
 
        INIT_IB_EVENT_HANDLER(&device->event_handler, ib_dev,
                              iser_event_handler);
-       if (ib_register_event_handler(&device->event_handler))
-               goto cq_err;
-
+       ib_register_event_handler(&device->event_handler);
        return 0;
 
 cq_err:
@@ -141,7 +139,7 @@ static void iser_free_device_ib_res(struct iser_device *device)
                comp->cq = NULL;
        }
 
-       (void)ib_unregister_event_handler(&device->event_handler);
+       ib_unregister_event_handler(&device->event_handler);
        ib_dealloc_pd(device->pd);
 
        kfree(device->comps);
index 57b862b..21f0b48 100644 (file)
@@ -954,12 +954,7 @@ static int vema_register(struct opa_vnic_ctrl_port *cport)
 
                INIT_IB_EVENT_HANDLER(&port->event_handler,
                                      cport->ibdev, opa_vnic_event);
-               ret = ib_register_event_handler(&port->event_handler);
-               if (ret) {
-                       c_err("port %d: event handler register failed\n", i);
-                       vema_unregister(cport);
-                       return ret;
-               }
+               ib_register_event_handler(&port->event_handler);
 
                idr_init(&port->vport_idr);
                mutex_init(&port->lock);
index 402275b..9e8e922 100644 (file)
@@ -2238,7 +2238,7 @@ static int srpt_write_pending(struct se_cmd *se_cmd)
                                cqe, first_wr);
                cqe = NULL;
        }
-       
+
        ret = ib_post_send(ch->qp, first_wr, &bad_wr);
        if (ret) {
                pr_err("%s: ib_post_send() returned %d for %d (avail: %d)\n",
@@ -2530,8 +2530,7 @@ static void srpt_add_one(struct ib_device *device)
 
        INIT_IB_EVENT_HANDLER(&sdev->event_handler, sdev->device,
                              srpt_event_handler);
-       if (ib_register_event_handler(&sdev->event_handler))
-               goto err_cm;
+       ib_register_event_handler(&sdev->event_handler);
 
        sdev->ioctx_ring = (struct srpt_recv_ioctx **)
                srpt_alloc_ioctx_ring(sdev, sdev->srq_size,
index c155c10..e536a05 100644 (file)
@@ -2413,8 +2413,8 @@ int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state,
                       enum ib_qp_type type, enum ib_qp_attr_mask mask,
                       enum rdma_link_layer ll);
 
-int ib_register_event_handler  (struct ib_event_handler *event_handler);
-int ib_unregister_event_handler(struct ib_event_handler *event_handler);
+void ib_register_event_handler(struct ib_event_handler *event_handler);
+void ib_unregister_event_handler(struct ib_event_handler *event_handler);
 void ib_dispatch_event(struct ib_event *event);
 
 int ib_query_port(struct ib_device *device,