Commit 1bbc7551 authored by Gavin Shan's avatar Gavin Shan Committed by Will Deacon
Browse files

firmware: arm_sdei: Remove while loop in sdei_event_register()



This removes the unnecessary while loop in sdei_event_register()
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: default avatarGavin Shan <gshan@redhat.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20200922130423.10173-9-gshan@redhat.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 101119a3
Loading
Loading
Loading
Loading
+25 −27
Original line number Diff line number Diff line
@@ -590,36 +590,34 @@ int sdei_event_register(u32 event_num, sdei_event_callback *cb, void *arg)
	WARN_ON(in_nmi());

	mutex_lock(&sdei_events_lock);
	do {
	if (sdei_event_find(event_num)) {
		pr_warn("Event %u already registered\n", event_num);
		err = -EBUSY;
			break;
		goto unlock;
	}

	event = sdei_event_create(event_num, cb, arg);
	if (IS_ERR(event)) {
		err = PTR_ERR(event);
			pr_warn("Failed to create event %u: %d\n", event_num,
				err);
			break;
		pr_warn("Failed to create event %u: %d\n", event_num, err);
		goto unlock;
	}

	cpus_read_lock();
	err = _sdei_event_register(event);
	if (err) {
		sdei_event_destroy(event);
			pr_warn("Failed to register event %u: %d\n", event_num,
				err);
		} else {
		pr_warn("Failed to register event %u: %d\n", event_num, err);
		goto cpu_unlock;
	}

	spin_lock(&sdei_list_lock);
	event->reregister = true;
	spin_unlock(&sdei_list_lock);
		}
cpu_unlock:
	cpus_read_unlock();
	} while (0);
unlock:
	mutex_unlock(&sdei_events_lock);

	return err;
}