All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	linux-fbdev@vger.kernel.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Du Cheng <ducheng2@gmail.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Claudio Suarez <cssk@net-c.es>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 13/21] fbcon: move more common code into fb_open()
Date: Tue, 8 Feb 2022 14:53:59 +0100	[thread overview]
Message-ID: <YgJ19zts7nxCjGk5@phenom.ffwll.local> (raw)
In-Reply-To: <Yf2AAx9rlIsh/h8I@ravnborg.org>

On Fri, Feb 04, 2022 at 08:35:31PM +0100, Sam Ravnborg wrote:
> On Mon, Jan 31, 2022 at 10:05:44PM +0100, Daniel Vetter wrote:
> > No idea why con2fb_acquire_newinfo() initializes much less than
> > fbcon_startup(), but so be it. From a quick look most of the
> > un-initialized stuff should be fairly harmless, but who knows.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> > Cc: Thomas Zimmermann <tzimmermann@suse.de>
> > Cc: Claudio Suarez <cssk@net-c.es>
> > Cc: Du Cheng <ducheng2@gmail.com>
> > ---
> >  drivers/video/fbdev/core/fbcon.c | 74 +++++++++++++-------------------
> >  1 file changed, 31 insertions(+), 43 deletions(-)
> > 
> > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
> > index b83a5a77d8a8..5a3391ff038d 100644
> > --- a/drivers/video/fbdev/core/fbcon.c
> > +++ b/drivers/video/fbdev/core/fbcon.c
> > @@ -680,8 +680,18 @@ static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount)
> >  
> >  #endif /* CONFIG_MISC_TILEBLITTING */
> >  
> > +static void fbcon_release(struct fb_info *info)
> > +{
> > +	if (info->fbops->fb_release)
> > +		info->fbops->fb_release(info, 0);
> > +
> > +	module_put(info->fbops->owner);
> > +}
> > +
> >  static int fbcon_open(struct fb_info *info)
> >  {
> > +	struct fbcon_ops *ops;
> > +
> >  	if (!try_module_get(info->fbops->owner))
> >  		return -ENODEV;
> >  
> > @@ -691,19 +701,22 @@ static int fbcon_open(struct fb_info *info)
> >  		return -ENODEV;
> >  	}
> >  
> > -	return 0;
> > -}
> > +	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > +	if (!ops) {
> > +		fbcon_release(info);
> > +		return -ENOMEM;
> > +	}
> >  
> > -static void fbcon_release(struct fb_info *info)
> > -{
> > -	if (info->fbops->fb_release)
> > -		info->fbops->fb_release(info, 0);
> > +	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > +	ops->info = info;
> > +	info->fbcon_par = ops;
> > +	ops->cur_blink_jiffies = HZ / 5;
> >  
> > -	module_put(info->fbops->owner);
> > +	return 0;
> >  }
> >  
> >  static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> > -				  int unit, int oldidx)
> > +				  int unit)
> >  {
> >  	struct fbcon_ops *ops = NULL;
> >  	int err;
> > @@ -712,27 +725,10 @@ static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> >  	if (err)
> >  		return err;
> >  
> > -	if (!err) {
> > -		ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -		if (!ops)
> > -			err = -ENOMEM;
> > -
> > -		INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -	}
> > -
> > -	if (!err) {
> > -		ops->cur_blink_jiffies = HZ / 5;
> > -		ops->info = info;
> > -		info->fbcon_par = ops;
> > -
> > -		if (vc)
> > -			set_blitting_type(vc, info);
> > -	}
> > +	ops = info->fbcon_par;
> >  
> > -	if (err) {
> > -		con2fb_map[unit] = oldidx;
> > -		fbcon_release(info);
> > -	}
> > +	if (vc)
> > +		set_blitting_type(vc, info);
> >  
> >  	return err;
> >  }
> > @@ -840,9 +836,11 @@ static int set_con2fb_map(int unit, int newidx, int user)
> >  
> >  	found = search_fb_in_map(newidx);
> >  
> > -	con2fb_map[unit] = newidx;
> > -	if (!err && !found)
> > -		err = con2fb_acquire_newinfo(vc, info, unit, oldidx);
> > +	if (!err && !found) {
> > +		err = con2fb_acquire_newinfo(vc, info, unit);
> > +		if (!err)
> > +			con2fb_map[unit] = newidx;
> > +	}
> This looks like an unintentional change of functionality as con2fb_map[unit] is
> only assigned when we do a con2fb_acquire_newinfo().
> 
> Staring at the code I could not say it is wrong, but not nice to hide
> the change in this patch.

Nope, it's not an unintentional bugfix. The old con2fb_acquire_newinfo did
reset con2fb_map to oldidx upon failure, which I've found to be a most
bizarre calling convention. So this sorts this out.

The reason I smashed this into the same patch is that I had to remove the
fbcon_release call, and so the error handling in there looked even more
funny. But I indeed failed to explain this all in the commit message.

Ack with that explainer, or do you want me to split this out properly?
-Daniel

> 
> 	Sam
> 
> 
> >  
> >  	/*
> >  	 * If old fb is not mapped to any of the consoles,
> > @@ -939,20 +937,10 @@ static const char *fbcon_startup(void)
> >  	if (fbcon_open(info))
> >  		return NULL;
> >  
> > -	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -	if (!ops) {
> > -		fbcon_release(info);
> > -		return NULL;
> > -	}
> > -
> > -	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -
> > +	ops = info->fbcon_par;
> >  	ops->currcon = -1;
> >  	ops->graphics = 1;
> >  	ops->cur_rotate = -1;
> > -	ops->cur_blink_jiffies = HZ / 5;
> > -	ops->info = info;
> > -	info->fbcon_par = ops;
> >  
> >  	p->con_rotate = initial_rotation;
> >  	if (p->con_rotate == -1)
> > @@ -1022,7 +1010,7 @@ static void fbcon_init(struct vc_data *vc, int init)
> >  		return;
> >  
> >  	if (!info->fbcon_par)
> > -		con2fb_acquire_newinfo(vc, info, vc->vc_num, -1);
> > +		con2fb_acquire_newinfo(vc, info, vc->vc_num);
> >  
> >  	/* If we are not the first console on this
> >  	   fb, copy the font from that console */
> > -- 
> > 2.33.0

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: linux-fbdev@vger.kernel.org, Du Cheng <ducheng2@gmail.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Claudio Suarez <cssk@net-c.es>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 13/21] fbcon: move more common code into fb_open()
Date: Tue, 8 Feb 2022 14:53:59 +0100	[thread overview]
Message-ID: <YgJ19zts7nxCjGk5@phenom.ffwll.local> (raw)
In-Reply-To: <Yf2AAx9rlIsh/h8I@ravnborg.org>

On Fri, Feb 04, 2022 at 08:35:31PM +0100, Sam Ravnborg wrote:
> On Mon, Jan 31, 2022 at 10:05:44PM +0100, Daniel Vetter wrote:
> > No idea why con2fb_acquire_newinfo() initializes much less than
> > fbcon_startup(), but so be it. From a quick look most of the
> > un-initialized stuff should be fairly harmless, but who knows.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> > Cc: Thomas Zimmermann <tzimmermann@suse.de>
> > Cc: Claudio Suarez <cssk@net-c.es>
> > Cc: Du Cheng <ducheng2@gmail.com>
> > ---
> >  drivers/video/fbdev/core/fbcon.c | 74 +++++++++++++-------------------
> >  1 file changed, 31 insertions(+), 43 deletions(-)
> > 
> > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
> > index b83a5a77d8a8..5a3391ff038d 100644
> > --- a/drivers/video/fbdev/core/fbcon.c
> > +++ b/drivers/video/fbdev/core/fbcon.c
> > @@ -680,8 +680,18 @@ static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount)
> >  
> >  #endif /* CONFIG_MISC_TILEBLITTING */
> >  
> > +static void fbcon_release(struct fb_info *info)
> > +{
> > +	if (info->fbops->fb_release)
> > +		info->fbops->fb_release(info, 0);
> > +
> > +	module_put(info->fbops->owner);
> > +}
> > +
> >  static int fbcon_open(struct fb_info *info)
> >  {
> > +	struct fbcon_ops *ops;
> > +
> >  	if (!try_module_get(info->fbops->owner))
> >  		return -ENODEV;
> >  
> > @@ -691,19 +701,22 @@ static int fbcon_open(struct fb_info *info)
> >  		return -ENODEV;
> >  	}
> >  
> > -	return 0;
> > -}
> > +	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > +	if (!ops) {
> > +		fbcon_release(info);
> > +		return -ENOMEM;
> > +	}
> >  
> > -static void fbcon_release(struct fb_info *info)
> > -{
> > -	if (info->fbops->fb_release)
> > -		info->fbops->fb_release(info, 0);
> > +	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > +	ops->info = info;
> > +	info->fbcon_par = ops;
> > +	ops->cur_blink_jiffies = HZ / 5;
> >  
> > -	module_put(info->fbops->owner);
> > +	return 0;
> >  }
> >  
> >  static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> > -				  int unit, int oldidx)
> > +				  int unit)
> >  {
> >  	struct fbcon_ops *ops = NULL;
> >  	int err;
> > @@ -712,27 +725,10 @@ static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> >  	if (err)
> >  		return err;
> >  
> > -	if (!err) {
> > -		ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -		if (!ops)
> > -			err = -ENOMEM;
> > -
> > -		INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -	}
> > -
> > -	if (!err) {
> > -		ops->cur_blink_jiffies = HZ / 5;
> > -		ops->info = info;
> > -		info->fbcon_par = ops;
> > -
> > -		if (vc)
> > -			set_blitting_type(vc, info);
> > -	}
> > +	ops = info->fbcon_par;
> >  
> > -	if (err) {
> > -		con2fb_map[unit] = oldidx;
> > -		fbcon_release(info);
> > -	}
> > +	if (vc)
> > +		set_blitting_type(vc, info);
> >  
> >  	return err;
> >  }
> > @@ -840,9 +836,11 @@ static int set_con2fb_map(int unit, int newidx, int user)
> >  
> >  	found = search_fb_in_map(newidx);
> >  
> > -	con2fb_map[unit] = newidx;
> > -	if (!err && !found)
> > -		err = con2fb_acquire_newinfo(vc, info, unit, oldidx);
> > +	if (!err && !found) {
> > +		err = con2fb_acquire_newinfo(vc, info, unit);
> > +		if (!err)
> > +			con2fb_map[unit] = newidx;
> > +	}
> This looks like an unintentional change of functionality as con2fb_map[unit] is
> only assigned when we do a con2fb_acquire_newinfo().
> 
> Staring at the code I could not say it is wrong, but not nice to hide
> the change in this patch.

Nope, it's not an unintentional bugfix. The old con2fb_acquire_newinfo did
reset con2fb_map to oldidx upon failure, which I've found to be a most
bizarre calling convention. So this sorts this out.

The reason I smashed this into the same patch is that I had to remove the
fbcon_release call, and so the error handling in there looked even more
funny. But I indeed failed to explain this all in the commit message.

Ack with that explainer, or do you want me to split this out properly?
-Daniel

> 
> 	Sam
> 
> 
> >  
> >  	/*
> >  	 * If old fb is not mapped to any of the consoles,
> > @@ -939,20 +937,10 @@ static const char *fbcon_startup(void)
> >  	if (fbcon_open(info))
> >  		return NULL;
> >  
> > -	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -	if (!ops) {
> > -		fbcon_release(info);
> > -		return NULL;
> > -	}
> > -
> > -	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -
> > +	ops = info->fbcon_par;
> >  	ops->currcon = -1;
> >  	ops->graphics = 1;
> >  	ops->cur_rotate = -1;
> > -	ops->cur_blink_jiffies = HZ / 5;
> > -	ops->info = info;
> > -	info->fbcon_par = ops;
> >  
> >  	p->con_rotate = initial_rotation;
> >  	if (p->con_rotate == -1)
> > @@ -1022,7 +1010,7 @@ static void fbcon_init(struct vc_data *vc, int init)
> >  		return;
> >  
> >  	if (!info->fbcon_par)
> > -		con2fb_acquire_newinfo(vc, info, vc->vc_num, -1);
> > +		con2fb_acquire_newinfo(vc, info, vc->vc_num);
> >  
> >  	/* If we are not the first console on this
> >  	   fb, copy the font from that console */
> > -- 
> > 2.33.0

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: linux-fbdev@vger.kernel.org, Du Cheng <ducheng2@gmail.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [Intel-gfx] [PATCH 13/21] fbcon: move more common code into fb_open()
Date: Tue, 8 Feb 2022 14:53:59 +0100	[thread overview]
Message-ID: <YgJ19zts7nxCjGk5@phenom.ffwll.local> (raw)
In-Reply-To: <Yf2AAx9rlIsh/h8I@ravnborg.org>

On Fri, Feb 04, 2022 at 08:35:31PM +0100, Sam Ravnborg wrote:
> On Mon, Jan 31, 2022 at 10:05:44PM +0100, Daniel Vetter wrote:
> > No idea why con2fb_acquire_newinfo() initializes much less than
> > fbcon_startup(), but so be it. From a quick look most of the
> > un-initialized stuff should be fairly harmless, but who knows.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> > Cc: Thomas Zimmermann <tzimmermann@suse.de>
> > Cc: Claudio Suarez <cssk@net-c.es>
> > Cc: Du Cheng <ducheng2@gmail.com>
> > ---
> >  drivers/video/fbdev/core/fbcon.c | 74 +++++++++++++-------------------
> >  1 file changed, 31 insertions(+), 43 deletions(-)
> > 
> > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
> > index b83a5a77d8a8..5a3391ff038d 100644
> > --- a/drivers/video/fbdev/core/fbcon.c
> > +++ b/drivers/video/fbdev/core/fbcon.c
> > @@ -680,8 +680,18 @@ static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount)
> >  
> >  #endif /* CONFIG_MISC_TILEBLITTING */
> >  
> > +static void fbcon_release(struct fb_info *info)
> > +{
> > +	if (info->fbops->fb_release)
> > +		info->fbops->fb_release(info, 0);
> > +
> > +	module_put(info->fbops->owner);
> > +}
> > +
> >  static int fbcon_open(struct fb_info *info)
> >  {
> > +	struct fbcon_ops *ops;
> > +
> >  	if (!try_module_get(info->fbops->owner))
> >  		return -ENODEV;
> >  
> > @@ -691,19 +701,22 @@ static int fbcon_open(struct fb_info *info)
> >  		return -ENODEV;
> >  	}
> >  
> > -	return 0;
> > -}
> > +	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > +	if (!ops) {
> > +		fbcon_release(info);
> > +		return -ENOMEM;
> > +	}
> >  
> > -static void fbcon_release(struct fb_info *info)
> > -{
> > -	if (info->fbops->fb_release)
> > -		info->fbops->fb_release(info, 0);
> > +	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > +	ops->info = info;
> > +	info->fbcon_par = ops;
> > +	ops->cur_blink_jiffies = HZ / 5;
> >  
> > -	module_put(info->fbops->owner);
> > +	return 0;
> >  }
> >  
> >  static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> > -				  int unit, int oldidx)
> > +				  int unit)
> >  {
> >  	struct fbcon_ops *ops = NULL;
> >  	int err;
> > @@ -712,27 +725,10 @@ static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
> >  	if (err)
> >  		return err;
> >  
> > -	if (!err) {
> > -		ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -		if (!ops)
> > -			err = -ENOMEM;
> > -
> > -		INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -	}
> > -
> > -	if (!err) {
> > -		ops->cur_blink_jiffies = HZ / 5;
> > -		ops->info = info;
> > -		info->fbcon_par = ops;
> > -
> > -		if (vc)
> > -			set_blitting_type(vc, info);
> > -	}
> > +	ops = info->fbcon_par;
> >  
> > -	if (err) {
> > -		con2fb_map[unit] = oldidx;
> > -		fbcon_release(info);
> > -	}
> > +	if (vc)
> > +		set_blitting_type(vc, info);
> >  
> >  	return err;
> >  }
> > @@ -840,9 +836,11 @@ static int set_con2fb_map(int unit, int newidx, int user)
> >  
> >  	found = search_fb_in_map(newidx);
> >  
> > -	con2fb_map[unit] = newidx;
> > -	if (!err && !found)
> > -		err = con2fb_acquire_newinfo(vc, info, unit, oldidx);
> > +	if (!err && !found) {
> > +		err = con2fb_acquire_newinfo(vc, info, unit);
> > +		if (!err)
> > +			con2fb_map[unit] = newidx;
> > +	}
> This looks like an unintentional change of functionality as con2fb_map[unit] is
> only assigned when we do a con2fb_acquire_newinfo().
> 
> Staring at the code I could not say it is wrong, but not nice to hide
> the change in this patch.

Nope, it's not an unintentional bugfix. The old con2fb_acquire_newinfo did
reset con2fb_map to oldidx upon failure, which I've found to be a most
bizarre calling convention. So this sorts this out.

The reason I smashed this into the same patch is that I had to remove the
fbcon_release call, and so the error handling in there looked even more
funny. But I indeed failed to explain this all in the commit message.

Ack with that explainer, or do you want me to split this out properly?
-Daniel

> 
> 	Sam
> 
> 
> >  
> >  	/*
> >  	 * If old fb is not mapped to any of the consoles,
> > @@ -939,20 +937,10 @@ static const char *fbcon_startup(void)
> >  	if (fbcon_open(info))
> >  		return NULL;
> >  
> > -	ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL);
> > -	if (!ops) {
> > -		fbcon_release(info);
> > -		return NULL;
> > -	}
> > -
> > -	INIT_DELAYED_WORK(&ops->cursor_work, fb_flashcursor);
> > -
> > +	ops = info->fbcon_par;
> >  	ops->currcon = -1;
> >  	ops->graphics = 1;
> >  	ops->cur_rotate = -1;
> > -	ops->cur_blink_jiffies = HZ / 5;
> > -	ops->info = info;
> > -	info->fbcon_par = ops;
> >  
> >  	p->con_rotate = initial_rotation;
> >  	if (p->con_rotate == -1)
> > @@ -1022,7 +1010,7 @@ static void fbcon_init(struct vc_data *vc, int init)
> >  		return;
> >  
> >  	if (!info->fbcon_par)
> > -		con2fb_acquire_newinfo(vc, info, vc->vc_num, -1);
> > +		con2fb_acquire_newinfo(vc, info, vc->vc_num);
> >  
> >  	/* If we are not the first console on this
> >  	   fb, copy the font from that console */
> > -- 
> > 2.33.0

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2022-02-08 13:54 UTC|newest]

Thread overview: 241+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-31 21:05 [PATCH 00/21] some fbcon patches, mostly locking Daniel Vetter
2022-01-31 21:05 ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05 ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 01/21] MAINTAINERS: Add entry for fbdev core Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-01 10:19   ` Thomas Zimmermann
2022-02-01 10:19     ` [Intel-gfx] " Thomas Zimmermann
2022-02-01 10:19     ` Thomas Zimmermann
2022-02-01 10:45     ` Greg Kroah-Hartman
2022-02-01 10:45       ` [Intel-gfx] " Greg Kroah-Hartman
2022-02-01 10:45       ` Greg Kroah-Hartman
2022-02-01 10:32   ` Helge Deller
2022-02-01 10:32     ` [Intel-gfx] " Helge Deller
2022-02-01 10:32     ` Helge Deller
2022-02-01 14:01   ` Javier Martinez Canillas
2022-02-01 14:01     ` [Intel-gfx] " Javier Martinez Canillas
2022-02-01 14:01     ` Javier Martinez Canillas
2022-02-01 14:47   ` Jani Nikula
2022-02-01 14:47     ` Jani Nikula
2022-02-01 14:47     ` [Intel-gfx] " Jani Nikula
2022-02-01 14:54   ` Geert Uytterhoeven
2022-02-01 14:54     ` [Intel-gfx] " Geert Uytterhoeven
2022-02-01 14:54     ` Geert Uytterhoeven
2022-02-01 20:47   ` Dave Airlie
2022-02-01 20:47     ` [Intel-gfx] " Dave Airlie
2022-02-01 20:47     ` Dave Airlie
2022-02-02 11:10   ` Daniel Stone
2022-02-02 11:10     ` Daniel Stone
2022-02-02 11:10     ` [Intel-gfx] " Daniel Stone
2022-02-02 11:18   ` Tomi Valkeinen
2022-02-02 11:18     ` [Intel-gfx] " Tomi Valkeinen
2022-02-02 11:18     ` Tomi Valkeinen
2022-02-02 11:31   ` Maxime Ripard
2022-02-02 11:31     ` [Intel-gfx] " Maxime Ripard
2022-02-02 11:31     ` Maxime Ripard
2022-02-02 13:48     ` Alex Deucher
2022-02-02 13:48       ` [Intel-gfx] " Alex Deucher
2022-02-02 13:48       ` Alex Deucher
2022-02-03 20:25   ` Sam Ravnborg
2022-02-03 20:25     ` Sam Ravnborg
2022-02-03 20:25     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 14:12   ` Daniel Vetter
2022-02-08 14:12     ` [Intel-gfx] " Daniel Vetter
2022-02-08 14:12     ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 02/21] fbcon: Resurrect fbcon accelerated scrolling code Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 03/21] fbcon: Restore fbcon scrolling acceleration Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-01 10:16   ` Helge Deller
2022-02-01 10:16     ` [Intel-gfx] " Helge Deller
2022-02-01 10:16     ` Helge Deller
2022-02-01 10:17     ` Helge Deller
2022-02-01 10:17       ` [Intel-gfx] " Helge Deller
2022-02-01 10:17       ` Helge Deller
2022-02-01 10:36     ` Daniel Vetter
2022-02-01 10:36       ` [Intel-gfx] " Daniel Vetter
2022-02-01 10:36       ` Daniel Vetter
2022-02-01 11:01       ` Helge Deller
2022-02-01 11:01         ` [Intel-gfx] " Helge Deller
2022-02-01 11:01         ` Helge Deller
2022-02-01 13:45         ` Daniel Vetter
2022-02-01 13:45           ` [Intel-gfx] " Daniel Vetter
2022-02-01 13:45           ` Daniel Vetter
2022-02-01 14:52           ` Helge Deller
2022-02-01 14:52             ` [Intel-gfx] " Helge Deller
2022-02-01 14:52             ` Helge Deller
2022-02-01 16:30             ` Daniel Vetter
2022-02-01 16:30               ` [Intel-gfx] " Daniel Vetter
2022-02-01 16:30               ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 04/21] fbcon: delete a few unneeded forward decl Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-03 20:30   ` Sam Ravnborg
2022-02-03 20:30     ` Sam Ravnborg
2022-02-03 20:30     ` [Intel-gfx] " Sam Ravnborg
2022-02-04 10:00   ` Geert Uytterhoeven
2022-02-04 10:00     ` [Intel-gfx] " Geert Uytterhoeven
2022-02-04 10:00     ` Geert Uytterhoeven
2022-01-31 21:05 ` [PATCH 05/21] fbcon: Introduce wrapper for console->fb_info lookup Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-03 21:25   ` Sam Ravnborg
2022-02-03 21:25     ` Sam Ravnborg
2022-02-03 21:25     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 06/21] fbcon: delete delayed loading code Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-03 20:45   ` Sam Ravnborg
2022-02-03 20:45     ` Sam Ravnborg
2022-02-03 20:45     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 13:42     ` Daniel Vetter
2022-02-08 13:42       ` [Intel-gfx] " Daniel Vetter
2022-02-08 13:42       ` Daniel Vetter
2022-02-08 18:09       ` Sam Ravnborg
2022-02-08 18:09         ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 07/21] fbdev/sysfs: Fix locking Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-03 21:27   ` Sam Ravnborg
2022-02-03 21:27     ` Sam Ravnborg
2022-02-03 21:27     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 08/21] fbcon: Use delayed work for cursor Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 09/21] fbcon: Replace FBCON_FLAGS_INIT with a boolean Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-01 10:37   ` Thomas Zimmermann
2022-02-01 10:37     ` [Intel-gfx] " Thomas Zimmermann
2022-02-01 10:37     ` Thomas Zimmermann
2022-02-03 13:47     ` Geert Uytterhoeven
2022-02-03 13:47       ` [Intel-gfx] " Geert Uytterhoeven
2022-02-03 13:47       ` Geert Uytterhoeven
2022-02-03 21:30   ` Sam Ravnborg
2022-02-03 21:30     ` Sam Ravnborg
2022-02-03 21:30     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 10/21] fb: Delete fb_info->queue Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-03 21:31   ` Sam Ravnborg
2022-02-03 21:31     ` Sam Ravnborg
2022-02-03 21:31     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 13:46     ` Daniel Vetter
2022-02-08 13:46       ` [Intel-gfx] " Daniel Vetter
2022-02-08 13:46       ` Daniel Vetter
2022-02-08 18:22       ` Sam Ravnborg
2022-02-08 18:22         ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 11/21] fbcon: Extract fbcon_open/release helpers Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-03 21:15   ` Sam Ravnborg
2022-02-03 21:15     ` Sam Ravnborg
2022-02-03 21:15     ` [Intel-gfx] " Sam Ravnborg
2022-02-03 21:32     ` Sam Ravnborg
2022-02-03 21:32       ` Sam Ravnborg
2022-02-08 13:48     ` Daniel Vetter
2022-02-08 13:48       ` [Intel-gfx] " Daniel Vetter
2022-02-08 13:48       ` Daniel Vetter
2022-02-08 18:24       ` Sam Ravnborg
2022-02-08 18:24         ` [Intel-gfx] " Sam Ravnborg
2022-02-08 19:51         ` Daniel Vetter
2022-02-08 19:51           ` Daniel Vetter
2022-02-08 19:51           ` Daniel Vetter
2022-01-31 21:05 ` [Intel-gfx] [PATCH 12/21] fbcon: Ditch error handling for con2fb_release_oldinfo Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-03 21:16   ` Sam Ravnborg
2022-02-03 21:16     ` Sam Ravnborg
2022-02-03 21:16     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 13/21] fbcon: move more common code into fb_open() Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 23:31   ` kernel test robot
2022-01-31 23:31     ` kernel test robot
2022-01-31 23:31     ` kernel test robot
2022-02-04 19:35   ` Sam Ravnborg
2022-02-04 19:35     ` Sam Ravnborg
2022-02-04 19:35     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 13:53     ` Daniel Vetter [this message]
2022-02-08 13:53       ` Daniel Vetter
2022-02-08 13:53       ` Daniel Vetter
2022-02-08 18:25       ` Sam Ravnborg
2022-02-08 18:25         ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [Intel-gfx] [PATCH 14/21] fbcon: use lock_fb_info in fbcon_open/release Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-04 19:39   ` Sam Ravnborg
2022-02-04 19:39     ` Sam Ravnborg
2022-02-04 19:39     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 15/21] fbcon: Consistently protect deferred_takeover with console_lock() Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-04 19:45   ` Sam Ravnborg
2022-02-04 19:45     ` Sam Ravnborg
2022-02-04 19:45     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 16/21] fbcon: Move console_lock for register/unlink/unregister Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-04 19:54   ` Sam Ravnborg
2022-02-04 19:54     ` Sam Ravnborg
2022-02-04 19:54     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 13:56     ` Daniel Vetter
2022-02-08 13:56       ` [Intel-gfx] " Daniel Vetter
2022-02-08 13:56       ` Daniel Vetter
2022-01-31 21:05 ` [PATCH 17/21] fbcon: Move more code into fbcon_release Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-04 19:55   ` Sam Ravnborg
2022-02-04 19:55     ` Sam Ravnborg
2022-02-04 19:55     ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 18/21] fbcon: untangle fbcon_exit Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-04 20:06   ` Sam Ravnborg
2022-02-04 20:06     ` Sam Ravnborg
2022-02-04 20:06     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 13:58     ` Daniel Vetter
2022-02-08 13:58       ` [Intel-gfx] " Daniel Vetter
2022-02-08 13:58       ` Daniel Vetter
2022-02-08 18:27       ` Sam Ravnborg
2022-02-08 18:27         ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 19/21] fbcon: Maintain a private array of fb_info Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-02-04 20:15   ` Sam Ravnborg
2022-02-04 20:15     ` Sam Ravnborg
2022-02-04 20:15     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 14:03     ` Daniel Vetter
2022-02-08 14:03       ` [Intel-gfx] " Daniel Vetter
2022-02-08 14:03       ` Daniel Vetter
2022-02-08 18:55       ` Sam Ravnborg
2022-02-08 18:55         ` [Intel-gfx] " Sam Ravnborg
2022-01-31 21:05 ` [PATCH 20/21] Revert "fbdev: Prevent probing generic drivers if a FB is already registered" Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05 ` [PATCH 21/21] fbdev: Make registered_fb[] private to fbmem.c Daniel Vetter
2022-01-31 21:05   ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:05   ` Daniel Vetter
2022-02-01  8:13   ` [Intel-gfx] " kernel test robot
2022-02-01  8:13     ` kernel test robot
2022-02-01  8:13     ` kernel test robot
2022-02-04  8:30   ` Geert Uytterhoeven
2022-02-04  8:30     ` [Intel-gfx] " Geert Uytterhoeven
2022-02-04  8:30     ` Geert Uytterhoeven
2022-02-08 14:04     ` [Intel-gfx] " Daniel Vetter
2022-02-08 14:04       ` Daniel Vetter
2022-02-08 14:04       ` Daniel Vetter
2022-02-08 20:59       ` Daniel Vetter
2022-02-08 20:59         ` [Intel-gfx] " Daniel Vetter
2022-02-08 19:00   ` Sam Ravnborg
2022-02-08 19:00     ` Sam Ravnborg
2022-02-08 19:00     ` [Intel-gfx] " Sam Ravnborg
2022-02-08 20:56     ` Daniel Vetter
2022-02-08 20:56       ` Daniel Vetter
2022-02-08 20:56       ` [Intel-gfx] " Daniel Vetter
2022-01-31 21:16 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for some fbcon patches, mostly locking Patchwork
2022-01-31 21:19 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-01-31 21:51 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YgJ19zts7nxCjGk5@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=cssk@net-c.es \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ducheng2@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=sam@ravnborg.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.