aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2014-01-30 07:12:31 -0500
committerRoland Dreier <roland@purestorage.com>2014-03-20 13:19:18 -0400
commit186f8ba062f796221d51077342f3ba5202838e9f (patch)
tree43b54218f6e12931419ea37c6cc9c21b1be6d56f
parent49c0e2414b20d868cf006addf14152570aef2605 (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.c25
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;
717bail:
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 */