linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] tty: drop tty_schedule_flip()
@ 2021-11-22 11:16 Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 1/3] tty: drivers/tty/, stop using tty_schedule_flip() Jiri Slaby
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jiri Slaby @ 2021-11-22 11:16 UTC (permalink / raw)
  To: gregkh; +Cc: linux-serial, linux-kernel, johan, Jiri Slaby

There are two identical functions: tty_schedule_flip and
tty_flip_buffer_push. Remove the former.

This is [v2] as [v1] was dropping tty_flip_buffer_push. And
tty_flip_buffer_push is spread wider, so remove the less used one as
proposed by Johan.

Jiri Slaby (3):
  tty: drivers/tty/, stop using tty_schedule_flip()
  tty: the rest, stop using tty_schedule_flip()
  tty: drop tty_schedule_flip()

 arch/alpha/kernel/srmcons.c               |  2 +-
 drivers/accessibility/speakup/spk_ttyio.c |  4 +--
 drivers/s390/char/keyboard.h              |  4 +--
 drivers/tty/goldfish.c                    |  2 +-
 drivers/tty/moxa.c                        |  4 +--
 drivers/tty/serial/lpc32xx_hs.c           |  2 +-
 drivers/tty/tty_buffer.c                  | 30 ++++++-----------------
 drivers/tty/vt/keyboard.c                 |  6 ++---
 drivers/tty/vt/vt.c                       |  2 +-
 include/linux/tty_flip.h                  |  1 -
 10 files changed, 21 insertions(+), 36 deletions(-)

-- 
2.33.1


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

* [PATCH v2 1/3] tty: drivers/tty/, stop using tty_schedule_flip()
  2021-11-22 11:16 [PATCH v2 0/3] tty: drop tty_schedule_flip() Jiri Slaby
@ 2021-11-22 11:16 ` Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 2/3] tty: the rest, " Jiri Slaby
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Jiri Slaby @ 2021-11-22 11:16 UTC (permalink / raw)
  To: gregkh; +Cc: linux-serial, linux-kernel, johan, Jiri Slaby, Vladimir Zapolskiy

Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). We are
going to remove the latter (as it is used less), so call the former in
drivers/tty/.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Vladimir Zapolskiy <vz@mleia.com>
---
 drivers/tty/goldfish.c          | 2 +-
 drivers/tty/moxa.c              | 4 ++--
 drivers/tty/serial/lpc32xx_hs.c | 2 +-
 drivers/tty/vt/keyboard.c       | 6 +++---
 drivers/tty/vt/vt.c             | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c
index d24af649a8bb..c01cd36dda41 100644
--- a/drivers/tty/goldfish.c
+++ b/drivers/tty/goldfish.c
@@ -151,7 +151,7 @@ static irqreturn_t goldfish_tty_interrupt(int irq, void *dev_id)
 	address = (unsigned long)(void *)buf;
 	goldfish_tty_rw(qtty, address, count, 0);
 
-	tty_schedule_flip(&qtty->port);
+	tty_flip_buffer_push(&qtty->port);
 	return IRQ_HANDLED;
 }
 
diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
index e37683e25055..f3c72ab1476c 100644
--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -1683,7 +1683,7 @@ static int moxa_poll_port(struct moxa_port *p, unsigned int handle,
 		if (inited && !tty_throttled(tty) &&
 				MoxaPortRxQueue(p) > 0) { /* RX */
 			MoxaPortReadData(p);
-			tty_schedule_flip(&p->port);
+			tty_flip_buffer_push(&p->port);
 		}
 	} else {
 		clear_bit(EMPTYWAIT, &p->statusflags);
@@ -1708,7 +1708,7 @@ static int moxa_poll_port(struct moxa_port *p, unsigned int handle,
 
 	if (tty && (intr & IntrBreak) && !I_IGNBRK(tty)) { /* BREAK */
 		tty_insert_flip_char(&p->port, 0, TTY_BREAK);
-		tty_schedule_flip(&p->port);
+		tty_flip_buffer_push(&p->port);
 	}
 
 	if (intr & IntrLine)
diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
index b199d7859961..07c4161eb4cc 100644
--- a/drivers/tty/serial/lpc32xx_hs.c
+++ b/drivers/tty/serial/lpc32xx_hs.c
@@ -341,7 +341,7 @@ static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id)
 		       LPC32XX_HSUART_IIR(port->membase));
 		port->icount.overrun++;
 		tty_insert_flip_char(tport, 0, TTY_OVERRUN);
-		tty_schedule_flip(tport);
+		tty_flip_buffer_push(tport);
 	}
 
 	/* Data received? */
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
index c7fbbcdcc346..3700cd057f27 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -324,13 +324,13 @@ int kbd_rate(struct kbd_repeat *rpt)
 static void put_queue(struct vc_data *vc, int ch)
 {
 	tty_insert_flip_char(&vc->port, ch, 0);
-	tty_schedule_flip(&vc->port);
+	tty_flip_buffer_push(&vc->port);
 }
 
 static void puts_queue(struct vc_data *vc, const char *cp)
 {
 	tty_insert_flip_string(&vc->port, cp, strlen(cp));
-	tty_schedule_flip(&vc->port);
+	tty_flip_buffer_push(&vc->port);
 }
 
 static void applkey(struct vc_data *vc, int key, char mode)
@@ -584,7 +584,7 @@ static void fn_inc_console(struct vc_data *vc)
 static void fn_send_intr(struct vc_data *vc)
 {
 	tty_insert_flip_char(&vc->port, 0, TTY_BREAK);
-	tty_schedule_flip(&vc->port);
+	tty_flip_buffer_push(&vc->port);
 }
 
 static void fn_scroll_forw(struct vc_data *vc)
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 7359c3e80d63..f8c87c4d7399 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1833,7 +1833,7 @@ static void csi_m(struct vc_data *vc)
 static void respond_string(const char *p, size_t len, struct tty_port *port)
 {
 	tty_insert_flip_string(port, p, len);
-	tty_schedule_flip(port);
+	tty_flip_buffer_push(port);
 }
 
 static void cursor_report(struct vc_data *vc, struct tty_struct *tty)
-- 
2.33.1


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

* [PATCH v2 2/3] tty: the rest, stop using tty_schedule_flip()
  2021-11-22 11:16 [PATCH v2 0/3] tty: drop tty_schedule_flip() Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 1/3] tty: drivers/tty/, stop using tty_schedule_flip() Jiri Slaby
@ 2021-11-22 11:16 ` Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 3/3] tty: drop tty_schedule_flip() Jiri Slaby
  2021-11-22 12:57 ` [PATCH v2 0/3] " Johan Hovold
  3 siblings, 0 replies; 5+ messages in thread
From: Jiri Slaby @ 2021-11-22 11:16 UTC (permalink / raw)
  To: gregkh
  Cc: linux-serial, linux-kernel, johan, Jiri Slaby, Richard Henderson,
	Ivan Kokshaysky, Matt Turner, William Hubbs, Chris Brannon,
	Kirk Reiser, Samuel Thibault, Heiko Carstens, Vasily Gorbik,
	Christian Borntraeger, Alexander Gordeev

Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). We are
going to remove the latter (as it is used less), so call the former in
the rest of the users.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: William Hubbs <w.d.hubbs@gmail.com>
Cc: Chris Brannon <chris@the-brannons.com>
Cc: Kirk Reiser <kirk@reisers.ca>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
---
 arch/alpha/kernel/srmcons.c               | 2 +-
 drivers/accessibility/speakup/spk_ttyio.c | 4 ++--
 drivers/s390/char/keyboard.h              | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c
index 90635ef5dafa..6dc952b0df4a 100644
--- a/arch/alpha/kernel/srmcons.c
+++ b/arch/alpha/kernel/srmcons.c
@@ -59,7 +59,7 @@ srmcons_do_receive_chars(struct tty_port *port)
 	} while((result.bits.status & 1) && (++loops < 10));
 
 	if (count)
-		tty_schedule_flip(port);
+		tty_flip_buffer_push(port);
 
 	return count;
 }
diff --git a/drivers/accessibility/speakup/spk_ttyio.c b/drivers/accessibility/speakup/spk_ttyio.c
index 0d1f397cd896..08cf8a17754b 100644
--- a/drivers/accessibility/speakup/spk_ttyio.c
+++ b/drivers/accessibility/speakup/spk_ttyio.c
@@ -88,7 +88,7 @@ static int spk_ttyio_receive_buf2(struct tty_struct *tty,
 	}
 
 	if (!ldisc_data->buf_free)
-		/* ttyio_in will tty_schedule_flip */
+		/* ttyio_in will tty_flip_buffer_push */
 		return 0;
 
 	/* Make sure the consumer has read buf before we have seen
@@ -312,7 +312,7 @@ static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
 	mb();
 	ldisc_data->buf_free = true;
 	/* Let TTY push more characters */
-	tty_schedule_flip(tty->port);
+	tty_flip_buffer_push(tty->port);
 
 	return rv;
 }
diff --git a/drivers/s390/char/keyboard.h b/drivers/s390/char/keyboard.h
index c467589c7f45..c06d399b9b1f 100644
--- a/drivers/s390/char/keyboard.h
+++ b/drivers/s390/char/keyboard.h
@@ -56,7 +56,7 @@ static inline void
 kbd_put_queue(struct tty_port *port, int ch)
 {
 	tty_insert_flip_char(port, ch, 0);
-	tty_schedule_flip(port);
+	tty_flip_buffer_push(port);
 }
 
 static inline void
@@ -64,5 +64,5 @@ kbd_puts_queue(struct tty_port *port, char *cp)
 {
 	while (*cp)
 		tty_insert_flip_char(port, *cp++, 0);
-	tty_schedule_flip(port);
+	tty_flip_buffer_push(port);
 }
-- 
2.33.1


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

* [PATCH v2 3/3] tty: drop tty_schedule_flip()
  2021-11-22 11:16 [PATCH v2 0/3] tty: drop tty_schedule_flip() Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 1/3] tty: drivers/tty/, stop using tty_schedule_flip() Jiri Slaby
  2021-11-22 11:16 ` [PATCH v2 2/3] tty: the rest, " Jiri Slaby
@ 2021-11-22 11:16 ` Jiri Slaby
  2021-11-22 12:57 ` [PATCH v2 0/3] " Johan Hovold
  3 siblings, 0 replies; 5+ messages in thread
From: Jiri Slaby @ 2021-11-22 11:16 UTC (permalink / raw)
  To: gregkh; +Cc: linux-serial, linux-kernel, johan, Jiri Slaby

Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). All
users were converted in the previous patches, so remove
tty_schedule_flip() completely while inlining its body into
tty_flip_buffer_push().

One less exported function.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
[v2] drop tty_schedule_flip (and not tty_flip_buffer_push)

 drivers/tty/tty_buffer.c | 30 ++++++++----------------------
 include/linux/tty_flip.h |  1 -
 2 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
index 6c7e65b1d9a1..5b6875057ce2 100644
--- a/drivers/tty/tty_buffer.c
+++ b/drivers/tty/tty_buffer.c
@@ -401,27 +401,6 @@ int __tty_insert_flip_char(struct tty_port *port, unsigned char ch, char flag)
 }
 EXPORT_SYMBOL(__tty_insert_flip_char);
 
-/**
- *	tty_schedule_flip	-	push characters to ldisc
- *	@port: tty port to push from
- *
- *	Takes any pending buffers and transfers their ownership to the
- *	ldisc side of the queue. It then schedules those characters for
- *	processing by the line discipline.
- */
-
-void tty_schedule_flip(struct tty_port *port)
-{
-	struct tty_bufhead *buf = &port->buf;
-
-	/* paired w/ acquire in flush_to_ldisc(); ensures
-	 * flush_to_ldisc() sees buffer data.
-	 */
-	smp_store_release(&buf->tail->commit, buf->tail->used);
-	queue_work(system_unbound_wq, &buf->work);
-}
-EXPORT_SYMBOL(tty_schedule_flip);
-
 /**
  *	tty_prepare_flip_string		-	make room for characters
  *	@port: tty port
@@ -566,7 +545,14 @@ static void flush_to_ldisc(struct work_struct *work)
 
 void tty_flip_buffer_push(struct tty_port *port)
 {
-	tty_schedule_flip(port);
+	struct tty_bufhead *buf = &port->buf;
+
+	/*
+	 * Paired w/ acquire in flush_to_ldisc(); ensures flush_to_ldisc() sees
+	 * buffer data.
+	 */
+	smp_store_release(&buf->tail->commit, buf->tail->used);
+	queue_work(system_unbound_wq, &buf->work);
 }
 EXPORT_SYMBOL(tty_flip_buffer_push);
 
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h
index 9916acb5de49..483d41cbcbb7 100644
--- a/include/linux/tty_flip.h
+++ b/include/linux/tty_flip.h
@@ -17,7 +17,6 @@ int tty_insert_flip_string_fixed_flag(struct tty_port *port,
 int tty_prepare_flip_string(struct tty_port *port, unsigned char **chars,
 		size_t size);
 void tty_flip_buffer_push(struct tty_port *port);
-void tty_schedule_flip(struct tty_port *port);
 int __tty_insert_flip_char(struct tty_port *port, unsigned char ch, char flag);
 
 static inline int tty_insert_flip_char(struct tty_port *port,
-- 
2.33.1


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

* Re: [PATCH v2 0/3] tty: drop tty_schedule_flip()
  2021-11-22 11:16 [PATCH v2 0/3] tty: drop tty_schedule_flip() Jiri Slaby
                   ` (2 preceding siblings ...)
  2021-11-22 11:16 ` [PATCH v2 3/3] tty: drop tty_schedule_flip() Jiri Slaby
@ 2021-11-22 12:57 ` Johan Hovold
  3 siblings, 0 replies; 5+ messages in thread
From: Johan Hovold @ 2021-11-22 12:57 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: gregkh, linux-serial, linux-kernel

On Mon, Nov 22, 2021 at 12:16:45PM +0100, Jiri Slaby wrote:
> There are two identical functions: tty_schedule_flip and
> tty_flip_buffer_push. Remove the former.
> 
> This is [v2] as [v1] was dropping tty_flip_buffer_push. And
> tty_flip_buffer_push is spread wider, so remove the less used one as
> proposed by Johan.
>
> Jiri Slaby (3):
>   tty: drivers/tty/, stop using tty_schedule_flip()
>   tty: the rest, stop using tty_schedule_flip()
>   tty: drop tty_schedule_flip()

Thanks for the v2, looks good. For the series:

Reviewed-by: Johan Hovold <johan@kernel.org>

Johan

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

end of thread, other threads:[~2021-11-22 12:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-22 11:16 [PATCH v2 0/3] tty: drop tty_schedule_flip() Jiri Slaby
2021-11-22 11:16 ` [PATCH v2 1/3] tty: drivers/tty/, stop using tty_schedule_flip() Jiri Slaby
2021-11-22 11:16 ` [PATCH v2 2/3] tty: the rest, " Jiri Slaby
2021-11-22 11:16 ` [PATCH v2 3/3] tty: drop tty_schedule_flip() Jiri Slaby
2021-11-22 12:57 ` [PATCH v2 0/3] " Johan Hovold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).