Messages in this thread | | | Date | Wed, 8 Jul 2009 18:52:12 +0900 | From | Paul Mundt <> | Subject | Re: [PATCH] fb: move mutex_init to framebuffer_alloc() |
| |
On Wed, Jul 08, 2009 at 05:42:25PM +0800, Wu Zhangjin wrote: > On Wed, 2009-07-01 at 18:26 +0200, Daniel Mack wrote: > > In 537a1bf05, a per-fbinfo mutex was added and framebuffer drivers were > > adopted accordingly. This new lock is currently initialized in > > register_framebuffer(). > > > > The mx3fb driver takes this lock in mx3fb_map_video_memory() _before_ > > register_framebuffer() is called and hence crashes the system very > > early. > > > > Moving this mutex_init() to framebuffer_alloc() solves this and also > > seems a lot more straight forward. > > > > but this may introduce deadlock to some _old_ drivers which have not > used framebuffer_alloc to allocate fb_info structure. > > to avoid deadlock, these drivers need to change kmalloc to > framebuffer_alloc, otherwise, they need to add their own mutexes > initialization source code: > mutex_init(&info->lock); mutex_init(&info->mm_lock); > > here is only a record for the _old_ drivers' maintainers. hope they can > get this info from google or find this commit: > Yes, I'm going through and gradually converting all of the outstanding drivers (both old and new) over to framebuffer_alloc(). The old ones are a bit more tedious given all of the casting games they play. I should have the outstanding ones finished tomorrow.
| |