Patch not upstream: fix race between open and removal of framebuffers

Tim Gardner tim.gardner at
Thu Apr 7 14:00:58 UTC 2011

On 04/02/2011 09:37 AM, Anca Emanuel wrote:
> This patch: is not in mainline. Any reason for that ?
> see:
> Please post c5a742b5f78e161d6a13853a7e3e6e1dfa429e69
> UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers
> to lkml with CC: stable at
> -----------------------------------------------------------------
>  From c5a742b5f78e161d6a13853a7e3e6e1dfa429e69 Mon Sep 17 00:00:00 2001
> From: Andy Whitcroft<apw at>
> Date: Thu, 29 Jul 2010 16:48:20 +0100
> Subject: [PATCH 1/1] UBUNTU: SAUCE: fbcon -- fix race between open and
> removal of framebuffers
> Currently there is no locking for updates to the registered_fb list.
> This allows an open through /dev/fbN to pick up a registered framebuffer
> pointer in parallel with it being released, as happens when a conflicting
> framebuffer is ejected or on module unload.  There is also no reference
> counting on the framebuffer descriptor which is referenced from all open
> files, leading to references to released or reused memory to persist on
> these open files.
> This patch adds a reference count to the framebuffer descriptor to prevent
> it from being released until after all pending opens are closed.  This
> allows the pending opens to detect the closed status and unmap themselves.
> It also adds locking to the framebuffer lookup path, locking it against
> the removal path such that it is possible to atomically lookup and take a
> reference to the descriptor.  It also adds locking to the read and write
> paths which currently could access the framebuffer descriptor after it
> has been freed.  Finally it moves the device to FBINFO_STATE_REMOVED to
> indicate that all access should be errored for this device.
> Signed-off-by: Andy Whitcroft<apw at>
> Acked-by: Stefan Bader<stefan.bader at>
> Signed-off-by: Leann Ogasawara<leann.ogasawara at>
> ---
>   drivers/video/fbmem.c |  132 ++++++++++++++++++++++++++++++++++++++-----------
>   include/linux/fb.h    |    2 +
>   2 files changed, 105 insertions(+), 29 deletions(-)

The patch author is away on vacation. I'm gonna leave it up to him to 
pursue upstreaming upon his return.

Tim Gardner tim.gardner at

More information about the kernel-team mailing list