aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power
diff options
context:
space:
mode:
authorFrans Klaver <frans.klaver@xsens.com>2015-01-14 03:15:41 -0500
committerSebastian Reichel <sre@kernel.org>2015-01-20 07:58:30 -0500
commit5c3faad29b266da015e3726cff6556df5c3cd9f5 (patch)
treef1c8a009fd4077eec507174728bb8336b67aae9d /drivers/power
parent0428c40d4c448f5dc63b0f76de14fa0affa7aa2f (diff)
power: reset: ltc2952: cleanup control flow in poweroff_handler
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>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/reset/ltc2952-poweroff.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/power/reset/ltc2952-poweroff.c b/drivers/power/reset/ltc2952-poweroff.c
index d29948762ceb..736af3961019 100644
--- a/drivers/power/reset/ltc2952-poweroff.c
+++ b/drivers/power/reset/ltc2952-poweroff.c
@@ -153,29 +153,21 @@ ltc2952_poweroff_timer_trigger(struct hrtimer *timer)
153 */ 153 */
154static irqreturn_t ltc2952_poweroff_handler(int irq, void *dev_id) 154static irqreturn_t ltc2952_poweroff_handler(int irq, void *dev_id)
155{ 155{
156 int ret;
157 struct ltc2952_poweroff *data = dev_id; 156 struct ltc2952_poweroff *data = dev_id;
158 157
159 if (data->kernel_panic) 158 if (data->kernel_panic || hrtimer_active(&data->timer_wde)) {
160 goto irq_ok;
161
162 if (hrtimer_active(&data->timer_wde)) {
163 /* shutdown is already triggered, nothing to do any more */ 159 /* shutdown is already triggered, nothing to do any more */
164 goto irq_ok; 160 return IRQ_HANDLED;
165 } 161 }
166 162
167 if (!hrtimer_active(&data->timer_trigger)) { 163 if (!hrtimer_active(&data->timer_trigger)) {
168 ret = hrtimer_start(&data->timer_trigger, data->trigger_delay, 164 if (hrtimer_start(&data->timer_trigger, data->trigger_delay,
169 HRTIMER_MODE_REL); 165 HRTIMER_MODE_REL))
170
171 if (ret)
172 dev_err(data->dev, "unable to start the wait timer\n"); 166 dev_err(data->dev, "unable to start the wait timer\n");
173 } else { 167 } else {
174 ret = hrtimer_cancel(&data->timer_trigger); 168 hrtimer_cancel(&data->timer_trigger);
175 /* omitting return value check, timer should have been valid */ 169 /* omitting return value check, timer should have been valid */
176 } 170 }
177
178irq_ok:
179 return IRQ_HANDLED; 171 return IRQ_HANDLED;
180} 172}
181 173