Commit 043c8a7c authored by Jiri Slaby (SUSE)'s avatar Jiri Slaby (SUSE) Committed by Greg Kroah-Hartman
Browse files

tty: n_tty: use do-while in n_tty_check_{,un}throttle()



This change gets rid of the complicated exit from the loops. It can be
done much easier using do-while loops.

Signed-off-by: default avatar"Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230919085156.1578-6-jirislaby@kernel.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c2b0fb9f
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -249,15 +249,12 @@ static void n_tty_check_throttle(struct tty_struct *tty)
	if (ldata->icanon && ldata->canon_head == ldata->read_tail)
		return;

	while (1) {
		int throttled;
	do {
		tty_set_flow_change(tty, TTY_THROTTLE_SAFE);
		if (N_TTY_BUF_SIZE - read_cnt(ldata) >= TTY_THRESHOLD_THROTTLE)
			break;
		throttled = tty_throttle_safe(tty);
		if (!throttled)
			break;
	}
	} while (tty_throttle_safe(tty));

	__tty_set_flow_change(tty, 0);
}

@@ -279,16 +276,14 @@ static void n_tty_check_unthrottle(struct tty_struct *tty)
	 * we won't get any more characters.
	 */

	while (1) {
		int unthrottled;
	do {
		tty_set_flow_change(tty, TTY_UNTHROTTLE_SAFE);
		if (chars_in_buffer(tty) > TTY_THRESHOLD_UNTHROTTLE)
			break;

		n_tty_kick_worker(tty);
		unthrottled = tty_unthrottle_safe(tty);
		if (!unthrottled)
			break;
	}
	} while (tty_unthrottle_safe(tty));

	__tty_set_flow_change(tty, 0);
}