fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency
authorAndrea Righi <righi.andrea@gmail.com>
Wed, 1 Apr 2009 17:05:02 +0000 (17:05 +0000)
committerChris Wright <chrisw@sous-sol.org>
Mon, 27 Apr 2009 17:36:51 +0000 (10:36 -0700)
commitdd3fa60c0e31f16c372799a1c3313b3247921987
tree3439e6415bd29863014cd24d6bd85cd2fbd8a446
parent97ecdadc284e820931f27c6345b0ff8b85792346
fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency

upstream commit: 66c1ca019078220dc1bf968f2bb18421100ef147

Fix a circular locking dependency in the frame buffer console driver
pushing down the mutex fb_info->lock.

Circular locking dependecies occur calling the blocking
fb_notifier_call_chain() with fb_info->lock held.  Notifier callbacks can
try to acquire mm->mmap_sem, while fb_mmap() acquires the locks in the
reverse order mm->mmap_sem => fb_info->lock.

Tested-by: Andrey Borzenkov <arvidjaar@mail.ru>
Signed-off-by: Andrea Righi <righi.andrea@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/video/backlight/backlight.c
drivers/video/backlight/lcd.c
drivers/video/console/fbcon.c
drivers/video/fbmem.c