diff options
author | Frans Klaver <frans.klaver@xsens.com> | 2015-01-14 03:15:41 -0500 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2015-01-20 07:58:30 -0500 |
commit | 5c3faad29b266da015e3726cff6556df5c3cd9f5 (patch) | |
tree | f1c8a009fd4077eec507174728bb8336b67aae9d /drivers/power | |
parent | 0428c40d4c448f5dc63b0f76de14fa0affa7aa2f (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.c | 18 |
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 | */ |
154 | static irqreturn_t ltc2952_poweroff_handler(int irq, void *dev_id) | 154 | static 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 | |||
178 | irq_ok: | ||
179 | return IRQ_HANDLED; | 171 | return IRQ_HANDLED; |
180 | } | 172 | } |
181 | 173 | ||