Re: the patch "vt: perform safe console erase" introduces a bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 16 Apr 2019, Greg Kroah-Hartman wrote:

> On Sun, Mar 31, 2019 at 04:18:01PM -0400, Mikulas Patocka wrote:
> > 
> > 
> > On Sat, 30 Mar 2019, Mikulas Patocka wrote:
> > 
> > > Hi
> > > 
> > > The patch a6dbe442755999960ca54a9b8ecfd9606be0ea75 ("vt: perform safe 
> > > console erase in the right order") introduces a bug.
> > > 
> > > ---
> > >  drivers/tty/vt/vt.c |    2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > Index: linux-5.0.5/drivers/tty/vt/vt.c
> > > ===================================================================
> > > --- linux-5.0.5.orig/drivers/tty/vt/vt.c	2019-03-30 19:29:26.000000000 +0100
> > > +++ linux-5.0.5/drivers/tty/vt/vt.c	2019-03-30 19:30:50.000000000 +0100
> > > @@ -1518,7 +1518,7 @@ static void csi_J(struct vc_data *vc, in
> > >  			return;
> > >  	}
> > >  	scr_memsetw(start, vc->vc_video_erase_char, 2 * count);
> > > -	update_region(vc, (unsigned long) start, count);
> > > +	do_update_region(vc, (unsigned long) start, count);
> > ^^^^ this is wrong too - it will clear the screen if \e[2J is printed on 
> > inactive console. We need to use con_should_update(vc), just like it was 
> > before:
> > 
> > 
> > The patch a6dbe442755999960ca54a9b8ecfd9606be0ea75 ("vt: perform safe
> > console erase in the right order") introduces a bug.
> > 
> > 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 line will be permanently visible in the center of the
> > screen. It will stay there until something overwrites it.
> > 
> > Before the patch, there was a call to do_update_region, the patch changes
> > it to update_region - and this seems to cause the bug with the cursor.
> > 
> > The bug goes away if we change update_region back to do_update_region.
> > 
> > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
> > Cc: stable@xxxxxxxxxxxxxxx
> > Fixes: a6dbe4427559 ("vt: perform safe console erase in the right order")
> > 
> > ---
> >  drivers/tty/vt/vt.c |    3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > Index: linux-5.0.5/drivers/tty/vt/vt.c
> > ===================================================================
> > --- linux-5.0.5.orig/drivers/tty/vt/vt.c	2019-03-30 19:29:26.000000000 +0100
> > +++ linux-5.0.5/drivers/tty/vt/vt.c	2019-03-31 13:06:24.000000000 +0200
> > @@ -1518,7 +1518,8 @@ static void csi_J(struct vc_data *vc, in
> >  			return;
> >  	}
> >  	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;
> >  }
> >  
> 
> Can you resend this, with the ack, in a format that I can apply it in?

I did resend that patch to you with a proper changelog on April 4th.
Subject is "[PATCH] fix cursor when clearing the screen".


Nicolas



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux