From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [rdma-next v2 05/23] RDMA/(core,ulp): Convert register/unregister event handler to be void
Date: Tue, 15 Aug 2017 11:54:34 +0300 [thread overview]
Message-ID: <20170815085452.3546-6-leon@kernel.org> (raw)
In-Reply-To: <20170815085452.3546-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
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-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
drivers/infiniband/core/cache.c | 23 ++++++++---------------
drivers/infiniband/core/device.c | 8 ++------
drivers/infiniband/core/sa_query.c | 3 +--
drivers/infiniband/core/uverbs_main.c | 13 +------------
drivers/infiniband/ulp/ipoib/ipoib_main.c | 10 +---------
drivers/infiniband/ulp/iser/iser_verbs.c | 6 ++----
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 7 +------
drivers/infiniband/ulp/srpt/ib_srpt.c | 5 ++---
include/rdma/ib_verbs.h | 4 ++--
9 files changed, 20 insertions(+), 59 deletions(-)
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index efc94304dee3..77515638c55c 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -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)
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index fbc92c649be8..475b93d62748 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -746,7 +746,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;
@@ -754,8 +754,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);
@@ -766,15 +764,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);
diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c
index da29e2863c84..14aef0dd8625 100644
--- a/drivers/infiniband/core/sa_query.c
+++ b/drivers/infiniband/core/sa_query.c
@@ -2408,8 +2408,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))
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 3d2609608f58..1ac99aec3d4e 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -594,7 +594,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)
@@ -620,21 +619,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);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 7dcdbbacbf46..645217232250 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -2223,13 +2223,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) {
@@ -2262,8 +2256,6 @@ static struct net_device *ipoib_add_port(const char *format,
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:
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 26a004e97ae0..55a73b0ed4c6 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -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);
diff --git a/drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c b/drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
index 57b862b94dca..21f0b481edcc 100644
--- a/drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
+++ b/drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
@@ -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);
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
index 402275be0931..9e8e9220f816 100644
--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -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,
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 4db4ad56ace6..3c9c514bcd7d 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -2411,8 +2411,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,
--
2.14.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-08-15 8:54 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-15 8:54 [pull request][rdma-next v2 00/23] RDMA core, drivers and IPoIB fixes Leon Romanovsky
[not found] ` <20170815085452.3546-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-08-15 8:54 ` [rdma-next v2 01/23] IB/cma: Fix erroneous validation of supported default GID type Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 02/23] IB/uverbs: Introduce and use helper functions to copy ah attributes Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 03/23] RDMA/mlx4: Don't use uninitialized variable Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 04/23] RDMA/mlx4: Fix create qp command alignment Leon Romanovsky
2017-08-15 8:54 ` Leon Romanovsky [this message]
2017-08-15 8:54 ` [rdma-next v2 06/23] RDMA/core: Cleanup device capability enum Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 07/23] RDMA/core: Remove unimplemented node_types and node transport Leon Romanovsky
[not found] ` <20170815085452.3546-8-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-08-15 18:25 ` Suri Shelvapille
[not found] ` <SN1PR0301MB2127376FC9B3D170C878A47BDE8D0-VLIetriUNob/KlJXleiaIJwN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-08-16 5:37 ` Leon Romanovsky
[not found] ` <20170816053744.GD24282-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-08-16 14:30 ` Suri Shelvapille
[not found] ` <SN1PR0301MB21274177B67EE02B96F14424DE820-VLIetriUNob/KlJXleiaIJwN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-08-16 16:05 ` Devesh Sharma
2017-08-16 16:21 ` Leon Romanovsky
[not found] ` <20170816162103.GT24282-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-08-16 18:53 ` Leon Romanovsky
[not found] ` <CANjDDBh=3=5pwYO0_hcZDYVe2H98NMdTT_KrHz7j2Hm74ftDjw@mail.gmail.com>
[not found] ` <CANjDDBh=3=5pwYO0_hcZDYVe2H98NMdTT_KrHz7j2Hm74ftDjw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-08-16 16:26 ` Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 08/23] RDMA/core: Delete BUG() from unreachable flow Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 09/23] RDMA/core: Refactor get link layer wrapper Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 10/23] RDMA/mlx4: Remove gfp_mask argument from acquire_group call Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 11/23] RDMA/usnic: Fix remove address space warning Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 12/23] RDMA/mthca: Make explicit conversion to 64bit value Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 13/23] IB/mlx4: Fix some spelling mistakes Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 14/23] IB/mlx5: " Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 15/23] IB/mlx5: Add necessary delay drop assignment Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 16/23] IB/mlx4: Fix RSS QP type in creation verb Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 17/23] IB/mlx4: Fix struct mlx4_ib_create_wq alignment Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 18/23] IB/mlx4: Remove redundant attribute in mlx4_ib_create_qp_rss struct Leon Romanovsky
[not found] ` <20170815085452.3546-19-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-08-22 20:09 ` Doug Ledford
[not found] ` <1503432590.78641.10.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-08-23 4:43 ` Leon Romanovsky
[not found] ` <20170823044354.GJ1724-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-08-24 9:22 ` Leon Romanovsky
[not found] ` <20170824092228.GF1724-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-08-24 19:40 ` Doug Ledford
2017-08-15 8:54 ` [rdma-next v2 19/23] IB/mlx4: Check that reserved fields in mlx4_ib_create_qp_rss are zero Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 20/23] IB/ipoib: Sync between remove_one to sysfs calls that use rtnl_lock Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 21/23] IB/ipoib: Add get statistics support to SRIOV VF Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 22/23] IB/rxe: Make rxe_counter_name static Leon Romanovsky
2017-08-15 8:54 ` [rdma-next v2 23/23] RDMA/mlx5: Limit scope of get vector affinity local function Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170815085452.3546-6-leon@kernel.org \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).