USB: serial: digi_acceleport: reduce chars_in_buffer over-reporting
authorJohan Hovold <johan@kernel.org>
Wed, 19 May 2021 09:20:01 +0000 (11:20 +0200)
committerJohan Hovold <johan@kernel.org>
Fri, 21 May 2021 13:45:35 +0000 (15:45 +0200)
Due to an ancient quirk in n_tty poll implementation, the
digi_acceleport driver has been reporting that its queue contains 256
(WAKEUP_CHARS) characters whenever its write URB is in use.

This has not been necessary since 2003 when the line-discipline started
taking the write room into account so let's return the maximum transfer
size again in order to over-report a little less and incidentally fix
the related debug statement.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/digi_acceleport.c

index 19ee8191647c58bc19fe08343b14c60b37ec722f..a4194b70a6fea026a0e174cb900a9fd6ce02d408 100644 (file)
@@ -1048,8 +1048,7 @@ static unsigned int digi_chars_in_buffer(struct tty_struct *tty)
        if (priv->dp_write_urb_in_use) {
                dev_dbg(&port->dev, "digi_chars_in_buffer: port=%d, chars=%d\n",
                        priv->dp_port_num, port->bulk_out_size - 2);
-               /* return(port->bulk_out_size - 2); */
-               return 256;
+               return port->bulk_out_size - 2;
        } else {
                dev_dbg(&port->dev, "digi_chars_in_buffer: port=%d, chars=%d\n",
                        priv->dp_port_num, priv->dp_out_buf_len);