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 */ |
