tty: fix __tty_insert_flip_char regression
authorArnd Bergmann <arnd@arndb.de>
Wed, 2 Aug 2017 11:11:39 +0000 (13:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 2 Aug 2017 13:58:17 +0000 (06:58 -0700)
commit8a5a90a2a477b86a3dc2eaa5a706db9bfdd647ca
tree8b0cb50ed5818bc923d48c71b916c9c81ce8281f
parent065ea0a7afd64d6cf3464bdd1d8cd227527e2045
tty: fix __tty_insert_flip_char regression

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")
Reported-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Tested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_buffer.c