Re: 2.6.26-rcX VC console scrolling regression
From: Jan Engelhardt
Date: Fri May 09 2008 - 15:24:34 EST
On Friday 2008-05-09 08:26, David Miller wrote:
>> My guess is that you see the effects of incomplete font table/position
>> switching, something along the lines a `cat /dev/urandom` would cause.
>> Using the very same kernel and boot params (vga=791 or anything to
>> switch it to fbcon), I cannot trigger the problem on opensuse.
>
>Jan, there is code in drivers/video/console/fbcon.c:fbcon_do_set_font()
>which makes changes to vc->vc_video_erase_char, maybe that code needs
>to update the new vc->vc_scrl_erase_char you added?
>
>It would be nice if you could audit the tree to see if any other cases
>have been missed like this as well.
>
Try this patch please.
---
drivers/video/console/fbcon.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index ca2a543..774f803 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2508,6 +2508,9 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
c = vc->vc_video_erase_char;
vc->vc_video_erase_char =
((c & 0xfe00) >> 1) | (c & 0xff);
+ c = vc->vc_def_color;
+ vc->vc_scrl_erase_char =
+ ((c & 0xFE00) >> 1) | (c & 0xFF);
vc->vc_attr >>= 1;
}
} else if (!vc->vc_hi_font_mask && cnt == 512) {
@@ -2538,9 +2541,14 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
if (vc->vc_can_do_color) {
vc->vc_video_erase_char =
((c & 0xff00) << 1) | (c & 0xff);
+ c = vc->vc_def_color;
+ vc->vc_scrl_erase_char =
+ ((c & 0xFF00) << 1) | (c & 0xFF);
vc->vc_attr <<= 1;
- } else
+ } else {
vc->vc_video_erase_char = c & ~0x100;
+ vc->vc_scrl_erase_char = c & ~0x100;
+ }
}
}
--
1.5.5.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/