drm: don't de-authenticate clients on master-close
authorDavid Herrmann <dh.herrmann@gmail.com>
Tue, 22 Jul 2014 15:12:26 +0000 (17:12 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Tue, 5 Aug 2014 14:07:55 +0000 (16:07 +0200)
commit3cb01a980461506f9ec4e4e1dc2dab6314236fb7
treee35eb24679bda6f69a1f216ba33522b603262dc7
parent48ba813701eb14b3008edefef4a0789b328e278c
drm: don't de-authenticate clients on master-close

If an active DRM-Master closes its device, we deauthenticate all clients
on that master. However, if an inactive DRM-Master closes its device, we
do nothing. This is quite inconsistent and breaks several scenarios:

 1) If this was used as security mechanism, it fails horribly if a master
    closes a device while VT switched away. Furthermore, none of the few
    drivers using ->master_*() callbacks seems to require it, anyway.

 2) If you spawn weston (or any other non-UMS compositor) in background
    while another compositor is active, both will get assigned to the
    same "drm_master" object. If the foreground compositor now exits, all
    clients of both the foreground AND background compositor will be
    de-authenticated leading to unexpected behavior.

Stop this non-sense and keep clients authenticated. We don't do this when
dropping DRM-Master (i.e., switching VTs) so don't do it on active-close
either!

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
drivers/gpu/drm/drm_fops.c
include/drm/drmP.h