summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/arm_sdei.c
diff options
context:
space:
mode:
authorGavin Shan <gshan@redhat.com>2020-09-22 23:04:19 +1000
committerWill Deacon <will@kernel.org>2020-09-28 21:52:22 +0100
commitb06146b698e6e835253d01901ecf0ab84646591e (patch)
tree93a734914736baba1cf2d5982482117a98a3e4ec /drivers/firmware/arm_sdei.c
parent1bbc75518503fe7992c8ec09557b453ec7222dcf (diff)
downloadlinux-b06146b698e6e835253d01901ecf0ab84646591e.tar.gz
linux-b06146b698e6e835253d01901ecf0ab84646591e.tar.xz
firmware: arm_sdei: Remove while loop in sdei_event_unregister()
This removes the unnecessary while loop in sdei_event_unregister() because of the following two reasons. This shouldn't cause any functional changes. * The while loop is executed for once, meaning it's not needed in theory. * With the while loop removed, the nested statements can be avoid to make the code a bit cleaner. Signed-off-by: Gavin Shan <gshan@redhat.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/r/20200922130423.10173-10-gshan@redhat.com Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/firmware/arm_sdei.c')
-rw-r--r--drivers/firmware/arm_sdei.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index 6595bd66aa73..790bff70d169 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -491,24 +491,23 @@ int sdei_event_unregister(u32 event_num)
mutex_lock(&sdei_events_lock);
event = sdei_event_find(event_num);
- do {
- if (!event) {
- pr_warn("Event %u not registered\n", event_num);
- err = -ENOENT;
- break;
- }
+ if (!event) {
+ pr_warn("Event %u not registered\n", event_num);
+ err = -ENOENT;
+ goto unlock;
+ }
- spin_lock(&sdei_list_lock);
- event->reregister = false;
- event->reenable = false;
- spin_unlock(&sdei_list_lock);
+ spin_lock(&sdei_list_lock);
+ event->reregister = false;
+ event->reenable = false;
+ spin_unlock(&sdei_list_lock);
- err = _sdei_event_unregister(event);
- if (err)
- break;
+ err = _sdei_event_unregister(event);
+ if (err)
+ goto unlock;
- sdei_event_destroy(event);
- } while (0);
+ sdei_event_destroy(event);
+unlock:
mutex_unlock(&sdei_events_lock);
return err;