OSDN Git Service

vt: fix cursor when clearing the screen
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 5 Apr 2019 00:53:28 +0000 (20:53 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 27 Apr 2019 07:36:36 +0000 (09:36 +0200)
commit8f2ef0e8f9670f83b3fe7e620eb7ae98910ff627
tree94b0359f14da5c277a97c8a5c18912c352b1cf78
parent38b7f09a9e83da3d8d786429520aace041e1d29e
vt: fix cursor when clearing the screen

commit b2ecf00631362a83744e5ec249947620db5e240c upstream.

The patch a6dbe4427559 ("vt: perform safe console erase in the right
order") introduced a bug. The conditional do_update_region() was
replaced by a call to update_region() that does contain the conditional
already, but with unwanted extra side effects such as restoring the cursor
drawing.

In order to reproduce the bug:
- use framebuffer console with the AMDGPU driver
- type "links" to start the console www browser
- press 'q' and space to exit links

Now the cursor will be permanently visible in the center of the
screen. It will stay there until something overwrites it.

The bug goes away if we change update_region() back to the conditional
do_update_region().

[ nico: reworded changelog ]

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Cc: stable@vger.kernel.org
Fixes: a6dbe4427559 ("vt: perform safe console erase in the right order")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c