Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 016190a4 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Ingo Molnar
Browse files

sched/wait: Deduplicate code with do-while



Statements in the loop's body and before it are identical.
Use do-while to not repeat it.

Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/43ffea6ee2152b90dedf962eac851609e4197218.1560256112.git.asml.silence@gmail.com


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 8ec59c0f
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -118,16 +118,12 @@ static void __wake_up_common_lock(struct wait_queue_head *wq_head, unsigned int
	bookmark.func = NULL;
	INIT_LIST_HEAD(&bookmark.entry);

	spin_lock_irqsave(&wq_head->lock, flags);
	nr_exclusive = __wake_up_common(wq_head, mode, nr_exclusive, wake_flags, key, &bookmark);
	spin_unlock_irqrestore(&wq_head->lock, flags);

	while (bookmark.flags & WQ_FLAG_BOOKMARK) {
	do {
		spin_lock_irqsave(&wq_head->lock, flags);
		nr_exclusive = __wake_up_common(wq_head, mode, nr_exclusive,
						wake_flags, key, &bookmark);
		spin_unlock_irqrestore(&wq_head->lock, flags);
	}
	} while (bookmark.flags & WQ_FLAG_BOOKMARK);
}

/**