From: Antonino Daplas Date: Tue, 16 Oct 2007 08:29:55 +0000 (-0700) Subject: fbcon: delay the start of the cursor timer until a con_switch() X-Git-Tag: v2.6.24-rc1~845 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;h=4d8a2d986d3ee3ece9c3cefbb23425a22132492c;p=safe%2Fjmp%2Flinux-2.6 fbcon: delay the start of the cursor timer until a con_switch() As reported in Bugzilla Bug 9093, upon switching to X, a small rectangular cursor can still be seen blinking in the upper left part of the screen. It is fbcon's text cursor. This is caused by a strange ioctl(..., KDSETMODE, KD_TEXT) call done by something in userspace, perhaps by X itself, while the tty is still in graphics mode. And when the tty is in KD_TEXT mode, the cursor timer is restarted. Although this is a userspace problem, we can work around it by delaying the restart of the cursor timer until an fbcon_switch() is called. In other words, the cursor timer will not be restarted even if a KD_TEXT mode switch is requested. Regression potential: Present but low Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 97a0224..0f32f4a 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c @@ -2405,7 +2405,7 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) update_screen(vc); } - if (fbcon_is_inactive(vc, info) || + if (mode_switch || fbcon_is_inactive(vc, info) || ops->blank_state != FB_BLANK_UNBLANK) fbcon_del_cursor_timer(info); else