OSDN Git Service

power: reset: ltc2952: cleanup control flow in poweroff_handler
authorFrans Klaver <frans.klaver@xsens.com>
Wed, 14 Jan 2015 08:15:41 +0000 (09:15 +0100)
committerSebastian Reichel <sre@kernel.org>
Tue, 20 Jan 2015 12:58:30 +0000 (13:58 +0100)
ltc2952_poweroff_handler uses gotos to return from the function. Since
we don't do cleanups exiting this function, just return IRQ_HANDLED on
the spot and be done with it.

While at it, remove the variable 'ret'. It was never used very much.

Signed-off-by: Frans Klaver <frans.klaver@xsens.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
drivers/power/reset/ltc2952-poweroff.c

index d299487..736af39 100644 (file)
@@ -153,29 +153,21 @@ ltc2952_poweroff_timer_trigger(struct hrtimer *timer)
  */
 static irqreturn_t ltc2952_poweroff_handler(int irq, void *dev_id)
 {
-       int ret;
        struct ltc2952_poweroff *data = dev_id;
 
-       if (data->kernel_panic)
-               goto irq_ok;
-
-       if (hrtimer_active(&data->timer_wde)) {
+       if (data->kernel_panic || hrtimer_active(&data->timer_wde)) {
                /* shutdown is already triggered, nothing to do any more */
-               goto irq_ok;
+               return IRQ_HANDLED;
        }
 
        if (!hrtimer_active(&data->timer_trigger)) {
-               ret = hrtimer_start(&data->timer_trigger, data->trigger_delay,
-                       HRTIMER_MODE_REL);
-
-               if (ret)
+               if (hrtimer_start(&data->timer_trigger, data->trigger_delay,
+                                 HRTIMER_MODE_REL))
                        dev_err(data->dev, "unable to start the wait timer\n");
        } else {
-               ret = hrtimer_cancel(&data->timer_trigger);
+               hrtimer_cancel(&data->timer_trigger);
                /* omitting return value check, timer should have been valid */
        }
-
-irq_ok:
        return IRQ_HANDLED;
 }