Linux-Serial Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/2] serial: tegra: fix CREAD handling for PIO
@ 2020-07-10 13:59 Johan Hovold
  2020-07-10 13:59 ` [PATCH 1/2] " Johan Hovold
  2020-07-10 13:59 ` [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks Johan Hovold
  0 siblings, 2 replies; 5+ messages in thread
From: Johan Hovold @ 2020-07-10 13:59 UTC (permalink / raw)
  To: Laxman Dewangan, Greg Kroah-Hartman
  Cc: Jiri Slaby, Thierry Reding, Jonathan Hunter, linux-serial,
	linux-tegra, linux-kernel, Johan Hovold

Stumbled over these two; compile-tested only.

Johan


Johan Hovold (2):
  serial: tegra: fix CREAD handling for PIO
  serial: tegra: drop bogus NULL tty-port checks

 drivers/tty/serial/serial-tegra.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] serial: tegra: fix CREAD handling for PIO
  2020-07-10 13:59 [PATCH 0/2] serial: tegra: fix CREAD handling for PIO Johan Hovold
@ 2020-07-10 13:59 ` Johan Hovold
  2020-07-14 15:52   ` Thierry Reding
  2020-07-10 13:59 ` [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks Johan Hovold
  1 sibling, 1 reply; 5+ messages in thread
From: Johan Hovold @ 2020-07-10 13:59 UTC (permalink / raw)
  To: Laxman Dewangan, Greg Kroah-Hartman
  Cc: Jiri Slaby, Thierry Reding, Jonathan Hunter, linux-serial,
	linux-tegra, linux-kernel, Johan Hovold, stable,
	Shardar Shariff Md, Krishna Yarlagadda

Commit 33ae787b74fc ("serial: tegra: add support to ignore read") added
support for dropping input in case CREAD isn't set, but for PIO the
ignore_status_mask wasn't checked until after the character had been
put in the receive buffer.

Note that the NULL tty-port test is bogus and will be removed by a
follow-on patch.

Fixes: 33ae787b74fc ("serial: tegra: add support to ignore read")
Cc: stable <stable@vger.kernel.org>     # 5.4
Cc: Shardar Shariff Md <smohammed@nvidia.com>
Cc: Krishna Yarlagadda <kyarlagadda@nvidia.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/tty/serial/serial-tegra.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/serial-tegra.c b/drivers/tty/serial/serial-tegra.c
index 8de8bac9c6c7..b3bbee6b6702 100644
--- a/drivers/tty/serial/serial-tegra.c
+++ b/drivers/tty/serial/serial-tegra.c
@@ -653,11 +653,14 @@ static void tegra_uart_handle_rx_pio(struct tegra_uart_port *tup,
 		ch = (unsigned char) tegra_uart_read(tup, UART_RX);
 		tup->uport.icount.rx++;
 
-		if (!uart_handle_sysrq_char(&tup->uport, ch) && tty)
-			tty_insert_flip_char(tty, ch, flag);
+		if (uart_handle_sysrq_char(&tup->uport, ch))
+			continue;
 
 		if (tup->uport.ignore_status_mask & UART_LSR_DR)
 			continue;
+
+		if (tty)
+			tty_insert_flip_char(tty, ch, flag);
 	} while (1);
 }
 
-- 
2.26.2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks
  2020-07-10 13:59 [PATCH 0/2] serial: tegra: fix CREAD handling for PIO Johan Hovold
  2020-07-10 13:59 ` [PATCH 1/2] " Johan Hovold
@ 2020-07-10 13:59 ` Johan Hovold
  2020-07-14 15:52   ` Thierry Reding
  1 sibling, 1 reply; 5+ messages in thread
From: Johan Hovold @ 2020-07-10 13:59 UTC (permalink / raw)
  To: Laxman Dewangan, Greg Kroah-Hartman
  Cc: Jiri Slaby, Thierry Reding, Jonathan Hunter, linux-serial,
	linux-tegra, linux-kernel, Johan Hovold

The struct tty_port is part of the uart state and will never be NULL in
the receive helpers. Drop the bogus NULL checks and rename the
pointer-variables "port" to differentiate them from struct tty_struct
pointers (which can be NULL).

Fixes: 962963e4ee23 ("serial: tegra: Switch to using struct tty_port")
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/tty/serial/serial-tegra.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/tty/serial/serial-tegra.c b/drivers/tty/serial/serial-tegra.c
index b3bbee6b6702..04d1b0807e66 100644
--- a/drivers/tty/serial/serial-tegra.c
+++ b/drivers/tty/serial/serial-tegra.c
@@ -635,7 +635,7 @@ static void tegra_uart_handle_tx_pio(struct tegra_uart_port *tup)
 }
 
 static void tegra_uart_handle_rx_pio(struct tegra_uart_port *tup,
-		struct tty_port *tty)
+		struct tty_port *port)
 {
 	do {
 		char flag = TTY_NORMAL;
@@ -659,13 +659,12 @@ static void tegra_uart_handle_rx_pio(struct tegra_uart_port *tup,
 		if (tup->uport.ignore_status_mask & UART_LSR_DR)
 			continue;
 
-		if (tty)
-			tty_insert_flip_char(tty, ch, flag);
+		tty_insert_flip_char(port, ch, flag);
 	} while (1);
 }
 
 static void tegra_uart_copy_rx_to_tty(struct tegra_uart_port *tup,
-				      struct tty_port *tty,
+				      struct tty_port *port,
 				      unsigned int count)
 {
 	int copied;
@@ -675,17 +674,13 @@ static void tegra_uart_copy_rx_to_tty(struct tegra_uart_port *tup,
 		return;
 
 	tup->uport.icount.rx += count;
-	if (!tty) {
-		dev_err(tup->uport.dev, "No tty port\n");
-		return;
-	}
 
 	if (tup->uport.ignore_status_mask & UART_LSR_DR)
 		return;
 
 	dma_sync_single_for_cpu(tup->uport.dev, tup->rx_dma_buf_phys,
 				count, DMA_FROM_DEVICE);
-	copied = tty_insert_flip_string(tty,
+	copied = tty_insert_flip_string(port,
 			((unsigned char *)(tup->rx_dma_buf_virt)), count);
 	if (copied != count) {
 		WARN_ON(1);
-- 
2.26.2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] serial: tegra: fix CREAD handling for PIO
  2020-07-10 13:59 ` [PATCH 1/2] " Johan Hovold
@ 2020-07-14 15:52   ` Thierry Reding
  0 siblings, 0 replies; 5+ messages in thread
From: Thierry Reding @ 2020-07-14 15:52 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Laxman Dewangan, Greg Kroah-Hartman, Jiri Slaby, Jonathan Hunter,
	linux-serial, linux-tegra, linux-kernel, stable,
	Shardar Shariff Md, Krishna Yarlagadda


[-- Attachment #1: Type: text/plain, Size: 856 bytes --]

On Fri, Jul 10, 2020 at 03:59:46PM +0200, Johan Hovold wrote:
> Commit 33ae787b74fc ("serial: tegra: add support to ignore read") added
> support for dropping input in case CREAD isn't set, but for PIO the
> ignore_status_mask wasn't checked until after the character had been
> put in the receive buffer.
> 
> Note that the NULL tty-port test is bogus and will be removed by a
> follow-on patch.
> 
> Fixes: 33ae787b74fc ("serial: tegra: add support to ignore read")
> Cc: stable <stable@vger.kernel.org>     # 5.4
> Cc: Shardar Shariff Md <smohammed@nvidia.com>
> Cc: Krishna Yarlagadda <kyarlagadda@nvidia.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/tty/serial/serial-tegra.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

Looks good to me:

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks
  2020-07-10 13:59 ` [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks Johan Hovold
@ 2020-07-14 15:52   ` Thierry Reding
  0 siblings, 0 replies; 5+ messages in thread
From: Thierry Reding @ 2020-07-14 15:52 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Laxman Dewangan, Greg Kroah-Hartman, Jiri Slaby, Jonathan Hunter,
	linux-serial, linux-tegra, linux-kernel


[-- Attachment #1: Type: text/plain, Size: 603 bytes --]

On Fri, Jul 10, 2020 at 03:59:47PM +0200, Johan Hovold wrote:
> The struct tty_port is part of the uart state and will never be NULL in
> the receive helpers. Drop the bogus NULL checks and rename the
> pointer-variables "port" to differentiate them from struct tty_struct
> pointers (which can be NULL).
> 
> Fixes: 962963e4ee23 ("serial: tegra: Switch to using struct tty_port")
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/tty/serial/serial-tegra.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-10 13:59 [PATCH 0/2] serial: tegra: fix CREAD handling for PIO Johan Hovold
2020-07-10 13:59 ` [PATCH 1/2] " Johan Hovold
2020-07-14 15:52   ` Thierry Reding
2020-07-10 13:59 ` [PATCH 2/2] serial: tegra: drop bogus NULL tty-port checks Johan Hovold
2020-07-14 15:52   ` Thierry Reding

Linux-Serial Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-serial/0 linux-serial/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-serial linux-serial/ https://lore.kernel.org/linux-serial \
		linux-serial@vger.kernel.org
	public-inbox-index linux-serial

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-serial


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git