diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2014-01-30 07:12:31 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-03-20 13:19:18 -0400 |
commit | 186f8ba062f796221d51077342f3ba5202838e9f (patch) | |
tree | 43b54218f6e12931419ea37c6cc9c21b1be6d56f | |
parent | 49c0e2414b20d868cf006addf14152570aef2605 (diff) |
IB/qib: Cleanup qib_register_observer()
Returning directly is easier to read than do-nothing gotos. Remove the
duplicative check on "olp" and pull the code in one indent level.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/infiniband/hw/qib/qib_diag.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/infiniband/hw/qib/qib_diag.c b/drivers/infiniband/hw/qib/qib_diag.c index 07f9030a8f10..5dfda4c5cc9c 100644 --- a/drivers/infiniband/hw/qib/qib_diag.c +++ b/drivers/infiniband/hw/qib/qib_diag.c | |||
@@ -694,28 +694,23 @@ int qib_register_observer(struct qib_devdata *dd, | |||
694 | const struct diag_observer *op) | 694 | const struct diag_observer *op) |
695 | { | 695 | { |
696 | struct diag_observer_list_elt *olp; | 696 | struct diag_observer_list_elt *olp; |
697 | int ret = -EINVAL; | 697 | unsigned long flags; |
698 | 698 | ||
699 | if (!dd || !op) | 699 | if (!dd || !op) |
700 | goto bail; | 700 | return -EINVAL; |
701 | ret = -ENOMEM; | ||
702 | olp = vmalloc(sizeof *olp); | 701 | olp = vmalloc(sizeof *olp); |
703 | if (!olp) { | 702 | if (!olp) { |
704 | pr_err("vmalloc for observer failed\n"); | 703 | pr_err("vmalloc for observer failed\n"); |
705 | goto bail; | 704 | return -ENOMEM; |
706 | } | 705 | } |
707 | if (olp) { | ||
708 | unsigned long flags; | ||
709 | 706 | ||
710 | spin_lock_irqsave(&dd->qib_diag_trans_lock, flags); | 707 | spin_lock_irqsave(&dd->qib_diag_trans_lock, flags); |
711 | olp->op = op; | 708 | olp->op = op; |
712 | olp->next = dd->diag_observer_list; | 709 | olp->next = dd->diag_observer_list; |
713 | dd->diag_observer_list = olp; | 710 | dd->diag_observer_list = olp; |
714 | spin_unlock_irqrestore(&dd->qib_diag_trans_lock, flags); | 711 | spin_unlock_irqrestore(&dd->qib_diag_trans_lock, flags); |
715 | ret = 0; | 712 | |
716 | } | 713 | return 0; |
717 | bail: | ||
718 | return ret; | ||
719 | } | 714 | } |
720 | 715 | ||
721 | /* Remove all registered observers when device is closed */ | 716 | /* Remove all registered observers when device is closed */ |