Commit 6bfbfcfc authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

tty: make everyone's write_room return >= 0



The tty line disciplines don't expect tty_operations::write_room to
return negative values. Fix the five drivers which violate this.

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210302062214.29627-44-jslaby@suse.cz


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 10eb63e5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -188,7 +188,7 @@ static int gdm_tty_write_room(struct tty_struct *tty)
	struct gdm *gdm = tty->driver_data;

	if (!GDM_TTY_READY(gdm))
		return -ENODEV;
		return 0;

	return WRITE_SIZE;
}
+2 −2
Original line number Diff line number Diff line
@@ -235,10 +235,10 @@ static int ipw_write_room(struct tty_struct *linux_tty)

	/* FIXME: Exactly how is the tty object locked here .. */
	if (!tty)
		return -ENODEV;
		return 0;

	if (!tty->port.count)
		return -EINVAL;
		return 0;

	room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
	if (room < 0)
+1 −1
Original line number Diff line number Diff line
@@ -3048,7 +3048,7 @@ static int gsmtty_write_room(struct tty_struct *tty)
{
	struct gsm_dlci *dlci = tty->driver_data;
	if (dlci->state == DLCI_CLOSED)
		return -EINVAL;
		return 0;
	return TX_SIZE - kfifo_len(&dlci->fifo);
}

+1 −1
Original line number Diff line number Diff line
@@ -878,7 +878,7 @@ static int vcc_write_room(struct tty_struct *tty)
	port = vcc_get_ne(tty->index);
	if (unlikely(!port)) {
		pr_err("VCC: write_room: Failed to find VCC port\n");
		return -ENODEV;
		return 0;
	}

	num = VCC_BUFF_LEN - port->chars_in_buffer;
+1 −1
Original line number Diff line number Diff line
@@ -1042,7 +1042,7 @@ static int mos7720_write_room(struct tty_struct *tty)

	mos7720_port = usb_get_serial_port_data(port);
	if (mos7720_port == NULL)
		return -ENODEV;
		return 0;

	/* FIXME: Locking */
	for (i = 0; i < NUM_URBS; ++i) {