Re: vt: regression caused by "Fix line garbage in virtual.."

From: Krzysztof Mazur
Date: Tue Nov 20 2012 - 10:20:50 EST


On Tue, Nov 20, 2012 at 09:54:21AM +0100, Jean-Francois Moine wrote:
> Thanks for testing. This time, the fix was easy.
>
> But anyway, as it seems that my patch fixes only the Cubox machine and
> as we are still using a kernel 3.5 with specific patches, the fix may
> be delayed.
>
> --->8 ---
> --- a/drivers/tty/vt/vt.c
> +++ b/drivers/tty/vt/vt.c
> @@ -539,25 +539,25 @@
> {
> unsigned short *p = (unsigned short *) vc->vc_pos;
>
> - scr_memmovew(p + nr, p, vc->vc_cols - vc->vc_x);
> + scr_memmovew(p + nr, p, (vc->vc_cols - vc->vc_x) * 2);
> scr_memsetw(p, vc->vc_video_erase_char, nr * 2);
> vc->vc_need_wrap = 0;
> if (DO_UPDATE(vc))
> do_update_region(vc, (unsigned long) p,
> - (vc->vc_cols - vc->vc_x) / 2 + 1);
> + vc->vc_cols - vc->vc_x);
> }
>
> static void delete_char(struct vc_data *vc, unsigned int nr)
> {
> unsigned short *p = (unsigned short *) vc->vc_pos;
>
> - scr_memcpyw(p, p + nr, vc->vc_cols - vc->vc_x - nr);
> + scr_memcpyw(p, p + nr, (vc->vc_cols - vc->vc_x - nr) * 2);
> scr_memsetw(p + vc->vc_cols - vc->vc_x - nr, vc->vc_video_erase_char,
> nr * 2);
> vc->vc_need_wrap = 0;
> if (DO_UPDATE(vc))
> do_update_region(vc, (unsigned long) p,
> - (vc->vc_cols - vc->vc_x) / 2);
> + vc->vc_cols - vc->vc_x);
> }
>
> static int softcursor_original;

Tested-by: Krzysztof Mazur <krzysiek@xxxxxxxxxxxx>

Thanks,

Krzysiek
--
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/