[PATCH] UBUNTU: SAUCE: Don't register vga16fb framebuffer if other framebuffers are present

Bryce Harrington bryce at canonical.com
Thu Mar 25 18:27:31 UTC 2010


This is great to see.  My one suggestion would be perhaps making the log
message be a warning (or just info) rather than an error, to prevent
users mistakenly thinking lack of vga16fb is causing some other random
bug they're having?

On Thu, Mar 25, 2010 at 12:53:30PM -0400, Chase Douglas wrote:
> Using the vga16fb framebuffer is not safe when other framebuffers are
> present. This fixes the case where the vga16fb module is loaded after
> a better framebuffer is loaded (since vga16fb is by definition the
> worst-case framebuffer).
> 
> There does not appear to be any locking around the num_registered_fb, so
> this is a hack at best. However, in Lucid we build vga16fb as a module.
> Modules are loaded serially, so this should be ok for Lucid. In M, we
> will transition to efifb and drop vga16fb, so this is a one time hack.
> 
> This prevents sudo lshw from corrupting /dev/fb0 by writing to vga16fb
> through /dev/fb1.
> 
> BugLink: http://bugs.launchpad.net/bugs/527369
> 
> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> ---
>  drivers/video/vga16fb.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
> index efde41d..b1d62ef 100644
> --- a/drivers/video/vga16fb.c
> +++ b/drivers/video/vga16fb.c
> @@ -1355,7 +1355,7 @@ static int __init vga16fb_probe(struct platform_device *dev)
>  
>  	vga16fb_update_fix(info);
>  
> -	if (register_framebuffer(info) < 0) {
> +	if (num_registered_fb > 0 || register_framebuffer(info) < 0) {
>  		printk(KERN_ERR "vga16fb: unable to register framebuffer\n");
>  		ret = -EINVAL;
>  		goto err_check_var;
> -- 
> 1.7.0
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list