Skip to content

Commit

Permalink
fb: Initialize fb_info mutexes in framebuffer_alloc()
Browse files Browse the repository at this point in the history
This way they'll be properly initialized early enough for users that may
touch them before the framebuffer has been registered.

Drivers that allocate their fb_info structure some other way (like
matrocfb's broken static allocation) need to be fixed up appropriately.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Paul Mundt authored and Linus Torvalds committed Jul 6, 2009
1 parent 793285f commit 4148df9
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 4 deletions.
2 changes: 0 additions & 2 deletions drivers/video/fbmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -1513,8 +1513,6 @@ register_framebuffer(struct fb_info *fb_info)
if (!registered_fb[i])
break;
fb_info->node = i;
mutex_init(&fb_info->lock);
mutex_init(&fb_info->mm_lock);

fb_info->dev = device_create(fb_class, fb_info->device,
MKDEV(FB_MAJOR, i), NULL, "fb%d", i);
Expand Down
3 changes: 3 additions & 0 deletions drivers/video/fbsysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ struct fb_info *framebuffer_alloc(size_t size, struct device *dev)
mutex_init(&info->bl_curve_mutex);
#endif

mutex_init(&info->lock);
mutex_init(&info->mm_lock);

return info;
#undef PADDING
#undef BYTES_PER_LONG
Expand Down
1 change: 1 addition & 0 deletions drivers/video/matrox/matroxfb_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -2083,6 +2083,7 @@ static int matroxfb_probe(struct pci_dev* pdev, const struct pci_device_id* dumm
spin_lock_init(&ACCESS_FBINFO(lock.accel));
init_rwsem(&ACCESS_FBINFO(crtc2.lock));
init_rwsem(&ACCESS_FBINFO(altout.lock));
mutex_init(&ACCESS_FBINFO(fbcon).lock);
mutex_init(&ACCESS_FBINFO(fbcon).mm_lock);
ACCESS_FBINFO(irq_flags) = 0;
init_waitqueue_head(&ACCESS_FBINFO(crtc1.vsync.wait));
Expand Down
2 changes: 0 additions & 2 deletions drivers/video/sm501fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1624,8 +1624,6 @@ 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);
Expand Down

0 comments on commit 4148df9

Please sign in to comment.