aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_auth.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-01-18 20:51:59 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2018-01-31 03:27:51 -0500
commit761e05a702f5d537ffcca1ba933f9f0a968aa022 (patch)
treecafe7ff8924cecdcf505b3ba3746f9ca1992e721 /drivers/gpu/drm/drm_auth.c
parent5bffee867df7494ecd32c1e6ec4e8fc934c521b7 (diff)
drm: Check for lessee in DROP_MASTER ioctl
Don't let a lessee control what the current DRM master is set to; that's the job of the "real" master. Otherwise, the lessee would disable all access to master operations for the owner and all lessees under it. This matches the same check made in the SET_MASTER ioctl. Signed-off-by: Keith Packard <keithp@keithp.com> Fixes: 2ed077e467ee ("drm: Add drm_object lease infrastructure [v5]") Cc: <stable@vger.kernel.org> # v4.15+ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20180119015159.1606-1-keithp@keithp.com
Diffstat (limited to 'drivers/gpu/drm/drm_auth.c')
-rw-r--r--drivers/gpu/drm/drm_auth.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
index aad468d170a7..d9c0f7573905 100644
--- a/drivers/gpu/drm/drm_auth.c
+++ b/drivers/gpu/drm/drm_auth.c
@@ -230,6 +230,12 @@ int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
230 if (!dev->master) 230 if (!dev->master)
231 goto out_unlock; 231 goto out_unlock;
232 232
233 if (file_priv->master->lessor != NULL) {
234 DRM_DEBUG_LEASE("Attempt to drop lessee %d as master\n", file_priv->master->lessee_id);
235 ret = -EINVAL;
236 goto out_unlock;
237 }
238
233 ret = 0; 239 ret = 0;
234 drm_drop_master(dev, file_priv); 240 drm_drop_master(dev, file_priv);
235out_unlock: 241out_unlock: