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, Apr 16, 2019 at 10:53:54AM -0400, Nicolas Pitre wrote:
> 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".

Ah, sorry, I see it now, it's burried in my "to-review" queue.  Will go
apply it now, thanks!

greg k-h



[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