2018-10-23 15:30:57

by Mikulas Patocka

[permalink] [raw]
Subject: [PATCH] vt: fix broken display when running aptitude

If you run aptitude on framebuffer console, the display is corrupted. The
corruption is caused by the commit d8ae7242. The patch adds "offset" to
"start" when calling scr_memsetw, but it forgets to do the same addition
on a subsequent call to do_update_region.

Signed-off-by: Mikulas Patocka <[email protected]>
Fixes: d8ae72427187 ("vt: preserve unicode values corresponding to screen characters")
Cc: [email protected] # 4.19

---
drivers/tty/vt/vt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/drivers/tty/vt/vt.c
===================================================================
--- linux-2.6.orig/drivers/tty/vt/vt.c 2018-10-23 16:15:08.000000000 +0200
+++ linux-2.6/drivers/tty/vt/vt.c 2018-10-23 16:29:20.000000000 +0200
@@ -1551,7 +1551,7 @@ static void csi_K(struct vc_data *vc, in
scr_memsetw(start + offset, vc->vc_video_erase_char, 2 * count);
vc->vc_need_wrap = 0;
if (con_should_update(vc))
- do_update_region(vc, (unsigned long) start, count);
+ do_update_region(vc, (unsigned long)(start + offset), count);
}

static void csi_X(struct vc_data *vc, int vpar) /* erase the following vpar positions */


2018-10-23 15:49:25

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [PATCH] vt: fix broken display when running aptitude

On Tue, 23 Oct 2018, Mikulas Patocka wrote:

> If you run aptitude on framebuffer console, the display is corrupted. The
> corruption is caused by the commit d8ae7242. The patch adds "offset" to
> "start" when calling scr_memsetw, but it forgets to do the same addition
> on a subsequent call to do_update_region.
>
> Signed-off-by: Mikulas Patocka <[email protected]>
> Fixes: d8ae72427187 ("vt: preserve unicode values corresponding to screen characters")
> Cc: [email protected] # 4.19

Good catch.

Reviewed-by: Nicolas Pitre <[email protected]>

> ---
> drivers/tty/vt/vt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/drivers/tty/vt/vt.c
> ===================================================================
> --- linux-2.6.orig/drivers/tty/vt/vt.c 2018-10-23 16:15:08.000000000 +0200
> +++ linux-2.6/drivers/tty/vt/vt.c 2018-10-23 16:29:20.000000000 +0200
> @@ -1551,7 +1551,7 @@ static void csi_K(struct vc_data *vc, in
> scr_memsetw(start + offset, vc->vc_video_erase_char, 2 * count);
> vc->vc_need_wrap = 0;
> if (con_should_update(vc))
> - do_update_region(vc, (unsigned long) start, count);
> + do_update_region(vc, (unsigned long)(start + offset), count);
> }
>
> static void csi_X(struct vc_data *vc, int vpar) /* erase the following vpar positions */
>

2018-11-02 19:09:54

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [PATCH] vt: fix broken display when running aptitude

Greg, are you picking up this patch?

Would be nice to have in v4.19.1.

On Tue, 23 Oct 2018, Nicolas Pitre wrote:

> On Tue, 23 Oct 2018, Mikulas Patocka wrote:
>
> > If you run aptitude on framebuffer console, the display is corrupted. The
> > corruption is caused by the commit d8ae7242. The patch adds "offset" to
> > "start" when calling scr_memsetw, but it forgets to do the same addition
> > on a subsequent call to do_update_region.
> >
> > Signed-off-by: Mikulas Patocka <[email protected]>
> > Fixes: d8ae72427187 ("vt: preserve unicode values corresponding to screen characters")
> > Cc: [email protected] # 4.19
>
> Good catch.
>
> Reviewed-by: Nicolas Pitre <[email protected]>
>
> > ---
> > drivers/tty/vt/vt.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > Index: linux-2.6/drivers/tty/vt/vt.c
> > ===================================================================
> > --- linux-2.6.orig/drivers/tty/vt/vt.c 2018-10-23 16:15:08.000000000 +0200
> > +++ linux-2.6/drivers/tty/vt/vt.c 2018-10-23 16:29:20.000000000 +0200
> > @@ -1551,7 +1551,7 @@ static void csi_K(struct vc_data *vc, in
> > scr_memsetw(start + offset, vc->vc_video_erase_char, 2 * count);
> > vc->vc_need_wrap = 0;
> > if (con_should_update(vc))
> > - do_update_region(vc, (unsigned long) start, count);
> > + do_update_region(vc, (unsigned long)(start + offset), count);
> > }
> >
> > static void csi_X(struct vc_data *vc, int vpar) /* erase the following vpar positions */
> >
>

2018-11-02 19:16:59

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] vt: fix broken display when running aptitude

On Fri, Nov 02, 2018 at 03:09:14PM -0400, Nicolas Pitre wrote:
> Greg, are you picking up this patch?
>
> Would be nice to have in v4.19.1.

4.19.1-rc1 is already out. My queue is _huge_ give me some time to
catch up...

greg k-h