]> git.itanic.dy.fi Git - linux-stable/commitdiff
serial: 8250_pci1xxxx: partially revert off by one patch
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 31 Jan 2024 08:24:59 +0000 (11:24 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Feb 2024 14:40:38 +0000 (14:40 +0000)
I was reviewing this code again and I realized I made a mistake here.
It should have been > instead of >=.  The subtract ensures that we
don't go out of bounds.  My patch meant that we don't read the last
chunk of the buffer.

Fixes: 86ee55e9bc7f ("serial: 8250_pci1xxxx: fix off by one in pci1xxxx_process_read_data()")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/bd6fb361-bbb9-427d-90e8-a5df4de76221@moroto.mountain
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_pci1xxxx.c

index cd258922bd780019609fee227f55d84ed3a04246..2dda737b1660bd7bd6f576d2146440d97e945047 100644 (file)
@@ -302,7 +302,7 @@ static void pci1xxxx_process_read_data(struct uart_port *port,
         * to read, the data is received one byte at a time.
         */
        while (valid_burst_count--) {
-               if (*buff_index >= (RX_BUF_SIZE - UART_BURST_SIZE))
+               if (*buff_index > (RX_BUF_SIZE - UART_BURST_SIZE))
                        break;
                burst_buf = (u32 *)&rx_buff[*buff_index];
                *burst_buf = readl(port->membase + UART_RX_BURST_FIFO);