Skip to contentSkip to conversation

Patch "tty: fix __tty_insert_flip_char regression" has been added to the 4.4-stable tree

PATCH [email protected] 2 participants 3 messages Sep 21, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

tty: fix __tty_insert_flip_char regression

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
tty-fix-__tty_insert_flip_char-regression.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 8a5a90a2a477b86a3dc2eaa5a706db9bfdd647ca Mon Sep 17 00:00:00 2001

From: Arnd Bergmann <[email protected]>
Date: Wed, 2 Aug 2017 13:11:39 +0200
Subject: tty: fix __tty_insert_flip_char regression

From: Arnd Bergmann <[email protected]>

commit 8a5a90a2a477b86a3dc2eaa5a706db9bfdd647ca upstream.

Sergey noticed a small but fatal mistake in __tty_insert_flip_char, leading to an oops in an interrupt handler when using any serial port.

The problem is that I accidentally took the tty_buffer pointer before calling __tty_buffer_request_room(), which replaces the buffer. This moves the pointer lookup to the right place after allocating the new buffer space.

Fixes 979990c62848 ("tty: improve tty_insert_flip_char() fast path")
---
 drivers/tty/tty_buffer.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/tty/tty_buffer.c +2 -1
@@ -372,12 +372,13 @@ EXPORT_SYMBOL(tty_insert_flip_string_fla
  */
 int __tty_insert_flip_char(struct tty_port *port, unsigned char ch, char flag)
 {
-	struct tty_buffer *tb = port->buf.tail;
+	struct tty_buffer *tb;
 	int flags = (flag == TTY_NORMAL) ? TTYB_NORMAL : 0;
 
 	if (!__tty_buffer_request_room(port, 1, flags))
 		return 0;
 
+	tb = port->buf.tail;
 	if (~tb->flags & TTYB_NORMAL)
 		*flag_buf_ptr(tb, tb->used) = flag;
 	*char_buf_ptr(tb, tb->used++) = ch;

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/qlge-avoid-memcpy-buffer-overflow.patch queue-4.4/tty-fix-__tty_insert_flip_char-regression.patch queue-4.4/tty-improve-tty_insert_flip_char-fast-path.patch queue-4.4/tty-improve-tty_insert_flip_char-slow-path.patch

#1 lore raw
Quoted 8 lines · On Thu, Sep 21, 2017 at 1:37 PM, <[email protected]> wrote:

This is a note to let you know that I've just added the patch titled

tty: fix __tty_insert_flip_char regression

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

Quoted 7 lines

The filename of the patch is:
tty-fix-__tty_insert_flip_char-regression.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Hmm I thought I had sent a backported version for stable that just contains the 'fast path' plus with the bugfix, but I must have forgotten to actually send it out.

Anyway, taking all three patches for stable should also work, no need to revisit unless you would prefer to drop the 'slow path' patch.

Arnd

author maintainer
#2 lore raw
Quoted 17 lines · Arnd Bergmann
Quoted 8 lines · On Thu, Sep 21, 2017 at 1:37 PM, <[email protected]> wrote:

This is a note to let you know that I've just added the patch titled

tty: fix __tty_insert_flip_char regression

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

Quoted 7 lines

The filename of the patch is:
tty-fix-__tty_insert_flip_char-regression.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 6 lines

Hmm I thought I had sent a backported version for stable that just contains the 'fast path' plus with the bugfix, but I must have forgotten to actually send it out.

Anyway, taking all three patches for stable should also work, no need to revisit unless you would prefer to drop the 'slow path' patch.

Keeping in sync is good, I'll just take all 3, thanks.

greg k-h