On Sun, 8 Aug 2010 09:37:24 +0100, Chris Wilson chris@chris-wilson.co.uk wrote:
Dave Airlie: I might be missing something, but what stops the race with something reopening while we are in lastclose now?
The global_mutex which appears to fill this role is only taken inside the drm_stub_open() and not drm_open() itself. As that mutex appears to serve no other role, retask it to serialise open/lastclose.
This patch was just wrong. The ordering is drm_stub_open() -> drm_open() so open/lastclose are currently serialised using drm_global_mutex.