All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: gregkh@linuxfoundation.org
Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 03/19] mxser: keep only !tty test in ISR
Date: Thu, 18 Nov 2021 08:31:09 +0100	[thread overview]
Message-ID: <20211118073125.12283-4-jslaby@suse.cz> (raw)
In-Reply-To: <20211118073125.12283-1-jslaby@suse.cz>

The others are superfluous with tty refcounting in place now. And they
are racy in fact:
* tty_port_initialized() reports false for a small moment after
  interrupts are enabled.
* closing is 1 while the port is still alive.

The queues are flushed later during close anyway. So there is no need
for this special handling. Actually, the ISR should not flush the
queues. It should behave as every other driver, just queue the chars
into tty buffer and go on. But this will be changed later. There is
still a lot code depending on having tty in ISR (and not only tty_port).

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/tty/mxser.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index e9248d39879c..c8a56b0d900d 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -262,7 +262,6 @@ struct mxser_port {
 	unsigned int xmit_head;
 	unsigned int xmit_tail;
 	unsigned int xmit_cnt;
-	int closing;
 
 	spinlock_t slock;
 };
@@ -903,7 +902,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
 		return;
 	if (tty_port_close_start(port, tty, filp) == 0)
 		return;
-	info->closing = 1;
 	mutex_lock(&port->mutex);
 	mxser_stop_rx(info);
 	mxser_flush_buffer(tty);
@@ -912,7 +910,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
 	mxser_shutdown_port(port);
 	tty_port_set_initialized(port, 0);
 	mutex_unlock(&port->mutex);
-	info->closing = 0;
 	/* Right now the tty_port set is done outside of the close_end helper
 	   as we don't yet have everyone using refcounts */	
 	tty_port_close_end(port, tty);
@@ -1668,7 +1665,7 @@ static bool mxser_port_isr(struct mxser_port *port)
 
 	iir &= MOXA_MUST_IIR_MASK;
 	tty = tty_port_tty_get(&port->port);
-	if (!tty || port->closing || !tty_port_initialized(&port->port)) {
+	if (!tty) {
 		status = inb(port->ioaddr + UART_LSR);
 		outb(port->FCR | UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
 				port->ioaddr + UART_FCR);
-- 
2.33.1


  parent reply	other threads:[~2021-11-18  7:31 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-18  7:31 [PATCH 00/19] mxser: another round of cleanups and fixes Jiri Slaby
2021-11-18  7:31 ` [PATCH 01/19] mxser: remove wait for sent from mxser_close_port Jiri Slaby
2021-11-18  7:31 ` [PATCH 02/19] mxser: rename mxser_close_port() to mxser_stop_rx() Jiri Slaby
2021-11-18  7:31 ` Jiri Slaby [this message]
2021-11-18  7:31 ` [PATCH 04/19] mxser: move MSR read to mxser_check_modem_status() Jiri Slaby
2021-11-18  7:31 ` [PATCH 05/19] mxser: clean up tx handling in mxser_transmit_chars() Jiri Slaby
2021-11-18  7:31 ` [PATCH 06/19] mxser: remove pointless xmit_buf checks Jiri Slaby
2021-11-18  7:31 ` [PATCH 07/19] mxser: remove tty->driver_data NULL check Jiri Slaby
2021-11-18  7:31 ` [PATCH 08/19] mxser: call stop_rx from mxser_shutdown_port() Jiri Slaby
2021-11-18  7:31 ` [PATCH 09/19] mxser: don't flush buffer from mxser_close() directly Jiri Slaby
2021-11-18  7:31 ` [PATCH 10/19] mxser: use tty_port_close() in mxser_close() Jiri Slaby
2021-11-18  7:31 ` [PATCH 11/19] mxser: extract TX empty check from mxser_wait_until_sent() Jiri Slaby
2021-11-18  7:31 ` [PATCH 12/19] mxser: use msleep_interruptible() in mxser_wait_until_sent() Jiri Slaby
2021-11-18  7:31 ` [PATCH 13/19] mxser: clean up timeout handling " Jiri Slaby
2021-11-18  7:31 ` [PATCH 14/19] mxser: don't throttle manually Jiri Slaby
2021-11-18  7:31 ` [PATCH 15/19] mxser: remove tty parameter from mxser_receive_chars_new() Jiri Slaby
2021-11-18  7:31 ` [PATCH 16/19] mxser: increase buf_overrun if tty_insert_flip_char() fails Jiri Slaby
2021-11-18  7:31 ` [PATCH 17/19] mxser: add MOXA prefix to some PCI device IDs Jiri Slaby
2021-11-18  7:31 ` [PATCH 18/19] mxser: move ids from pci_ids.h here Jiri Slaby
2021-11-18 20:58   ` Bjorn Helgaas
2021-11-18  7:31 ` [PATCH 19/19] mxser: use PCI_DEVICE_DATA Jiri Slaby

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211118073125.12283-4-jslaby@suse.cz \
    --to=jslaby@suse.cz \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.