From: Daniel Vetter Date: Sun, 2 Dec 2012 20:55:41 +0000 (+0100) Subject: drm/gma500: move fbcon restore to lastclose X-Git-Tag: v3.9-rc1~83^2~38^2~31 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7147573a5ce499dec3979e6b524691d47e1288d5;p=pandora-kernel.git drm/gma500: move fbcon restore to lastclose Doing this within the fb->destroy callback leads to a locking nightmare. And all other drm drivers that restore the fbcon do it in lastclose, too. With this adjustments all fb->destroy callbacks optionally drop references to any gem objects used as backing storage, call drm_framebuffer_cleanup and then kfree the struct. Which nicely simplifies the locking for framebuffer unreferencing and freeing, since this doesn't require that we hold the mode_config lock. A slight exception is the vmwgfx surface backed framebuffer, it also calls drm_master_put and removes the object from a device-private framebuffer list. Both seem to have solid locking in place already. Conclusion is that now it is no longer required to hold the mode_config lock while freeing a framebuffer. v2: Drop the corresponding mutex_lock WARN check from drm_framebuffer_unreference. v3: Use just the mode_config lock not modeset_lock_all, due to patch reordering. Acked-by: Alan Cox Signed-off-by: Daniel Vetter --- Reading git-diff-tree failed