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 <[email protected]>
Reviewed-by: Jonathan Cameron <[email protected]>
---
 drivers/firmware/arm_sdei.c | 29 ++++++++++++++---------------
 1 file 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;
-- 
2.23.0

Reply via email to