* [PATCH] video: sm501fb: Early initialization of mm_lock mutex.
@ 2009-07-03 6:45 Paul Mundt
0 siblings, 0 replies; only message in thread
From: Paul Mundt @ 2009-07-03 6:45 UTC (permalink / raw)
To: Krzysztof Helt, Andrew Morton, Linus Torvalds; +Cc: linux-kernel
Commit 537a1bf059fa312355696fa6db80726e655e7f17 (fbdev: add mutex for
fb_mmap locking) introduces a ->mm_lock mutex for protecting smem
assignments. Unfortunately in the case of sm501fb these happen quite
early in the initialization code, well before the mutex_init() that takes
place in register_framebuffer(), leading to:
------------[ cut here ]------------
Badness at kernel/mutex.c:207
Pid : 1, Comm: swapper
CPU : 0 Not tainted (2.6.31-rc1-00284-g529ba0d-dirty #2273)
PC is at __mutex_lock_slowpath+0x72/0x1bc
PR is at __mutex_lock_slowpath+0x66/0x1bc
...
matroxfb appears to have the same issue and has solved it with an early
mutex_init(), so we do the same for sm501fb.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
---
drivers/video/sm501fb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/video/sm501fb.c b/drivers/video/sm501fb.c
index 98f24f0..16d4f4c 100644
--- a/drivers/video/sm501fb.c
+++ b/drivers/video/sm501fb.c
@@ -1624,6 +1624,8 @@ static int __devinit sm501fb_start_one(struct sm501fb_info *info,
if (!fbi)
return 0;
+ mutex_init(&info->fb[head]->mm_lock);
+
ret = sm501fb_init_fb(info->fb[head], head, drvname);
if (ret) {
dev_err(info->dev, "cannot initialise fb %s\n", drvname);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2009-07-03 6:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-03 6:45 [PATCH] video: sm501fb: Early initialization of mm_lock mutex Paul Mundt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox