Skip to content

Commit

Permalink
serial: tegra: check the count and read if any from dma
Browse files Browse the repository at this point in the history
It is only necessary to read data from the dma buffer when the count
value is non-zero and hence, tegra_uart_copy_rx_to_tty() so only be
called when this is the case.

Although, this was being tested for in two places, there is a third
place where this was not tested. However, instead of adding another
if-statement prior to calling tegra_uart_copy_rx_to_tty(), move the test
inside the function.

Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
[jonathanh@nvidia.com: Re-worked patch to move the check for the count
 value inside the function tegra_uart_copy_rx_to_tty(). Updated
 changelog with more commentary.]
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Shardar Shariff Md authored and Greg Kroah-Hartman committed May 10, 2015
1 parent 11e7100 commit db8e784
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions drivers/tty/serial/serial-tegra.c
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,10 @@ static void tegra_uart_copy_rx_to_tty(struct tegra_uart_port *tup,
{
int copied;

/* If count is zero, then there is no data to be copied */
if (!count)
return;

tup->uport.icount.rx += count;
if (!tty) {
dev_err(tup->uport.dev, "No tty port\n");
Expand Down Expand Up @@ -588,8 +592,7 @@ static void tegra_uart_rx_dma_complete(void *args)
set_rts(tup, false);

/* If we are here, DMA is stopped */
if (count)
tegra_uart_copy_rx_to_tty(tup, port, count);
tegra_uart_copy_rx_to_tty(tup, port, count);

tegra_uart_handle_rx_pio(tup, port);
if (tty) {
Expand Down Expand Up @@ -626,8 +629,7 @@ static void tegra_uart_handle_rx_dma(struct tegra_uart_port *tup,
count = tup->rx_bytes_requested - state.residue;

/* If we are here, DMA is stopped */
if (count)
tegra_uart_copy_rx_to_tty(tup, port, count);
tegra_uart_copy_rx_to_tty(tup, port, count);

tegra_uart_handle_rx_pio(tup, port);
if (tty) {
Expand Down

0 comments on commit db8e784

Please sign in to comment.