fbdev: add mutex for fb_mmap locking
authorKrzysztof Helt <krzysztof.h1@wp.pl>
Tue, 30 Jun 2009 18:41:29 +0000 (11:41 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Jul 2009 01:56:00 +0000 (18:56 -0700)
commit537a1bf059fa312355696fa6db80726e655e7f17
tree4f5b3c6917311cfefad21eaf3dd92978334282de
parent70d6027ff2bc8bab180273b77e7ab3e8a62cca51
fbdev: add mutex for fb_mmap locking

Add a mutex to avoid a circular locking problem between the mm layer
semaphore and fbdev ioctl mutex through the fb_mmap() call.

Also, add mutex to all places where smem_start and smem_len fields change
so the mutex inside the fb_mmap() is actually used.  Changing of these
fields before calling the framebuffer_register() are not mutexed.

This is 2.6.31 material.  It removes one lockdep (fb_mmap() and
register_framebuffer()) but there is still another one (fb_release() and
register_framebuffer()).  It also cleans up handling of the smem_start and
smem_len fields used by mutexed section of the fb_mmap().

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 files changed:
drivers/video/atafb.c
drivers/video/atmel_lcdfb.c
drivers/video/fbmem.c
drivers/video/fsl-diu-fb.c
drivers/video/i810/i810_main.c
drivers/video/matrox/matroxfb_base.c
drivers/video/matrox/matroxfb_crtc2.c
drivers/video/mx3fb.c
drivers/video/omap/omapfb_main.c
drivers/video/platinumfb.c
drivers/video/pxafb.c
drivers/video/sh7760fb.c
drivers/video/sis/sis_main.c
drivers/video/sm501fb.c
drivers/video/w100fb.c
include/linux/fb.h