Commit b2ecf006 authored by Mikulas Patocka's avatar Mikulas Patocka Committed by Greg Kroah-Hartman

vt: fix cursor when clearing the screen

The patch a6dbe442 ("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: default avatarMikulas Patocka <mpatocka@redhat.com>
Reviewed-by: default avatarNicolas Pitre <nico@fluxnic.net>
Cc: stable@vger.kernel.org
Fixes: a6dbe442 ("vt: perform safe console erase in the right order")
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e00164a0
...@@ -1520,7 +1520,8 @@ static void csi_J(struct vc_data *vc, int vpar) ...@@ -1520,7 +1520,8 @@ static void csi_J(struct vc_data *vc, int vpar)
return; return;
} }
scr_memsetw(start, vc->vc_video_erase_char, 2 * count); scr_memsetw(start, vc->vc_video_erase_char, 2 * count);
update_region(vc, (unsigned long) start, count); if (con_should_update(vc))
do_update_region(vc, (unsigned long) start, count);
vc->vc_need_wrap = 0; vc->vc_need_wrap = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment