Received: by 10.223.185.116 with SMTP id b49csp6418703wrg; Wed, 28 Feb 2018 09:05:14 -0800 (PST) X-Google-Smtp-Source: AH8x226NGociLnE7tslSw/ZGEQQW1worpSeEU6W1AzXlz+WdJ/SH7xFGwwyER4ktsyXlx0R0OQLG X-Received: by 2002:a17:902:654a:: with SMTP id d10-v6mr18330837pln.117.1519837514742; Wed, 28 Feb 2018 09:05:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519837514; cv=none; d=google.com; s=arc-20160816; b=ubsj3Z4ADiApaSMFvAXdgNGKYkSCyJr+nfWZdzMuLfPYkLvBzWauXUzdXb4YDkIeaJ hzrrlcR6gWO0dALlmJ4ioznzwP6ERHVXbek6uSqQg2EtPaJrgU9DFNB2L7RrUC34wxlA tIWtD3UXHg9tMaa9+WUkXnvlEadGZpcN98gtEB3U4Cixpy8pIBwn78Bsv7RoPFfz7+/r 2sDiQFT6WpkG145Eyjkr6TMat9t/rKNCB468ZIrXfMNZZx56iVfh4FLaWnP5sAPwRb3C WQOmIDWocUYP585fYjonLXkNcJGcdyPX4rA3mRGpRKeJW65cJk4MHyFDfPRF1IFMfFZy To+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=J8ZCCtzxGYJBg9xhlC8Bb3HZIdZxFvudu65U8hdo85I=; b=mEscB9M0hijBP81Qp4/euPX+6NV62kG6gkSxpee48x/aJhyWWYHrFJGWLdGp/dg0eu kxdll9MjGf/yqZnO1TWXkkoORKDr9jay8PPAMtm3G94RvwWjhqk2//Xid2Vou09qlykx xs/pv+k8K07zcs4yufa7AxgZKjFv+ctQ6sJ5kbKjoeJCY3bCfAcfYrO2q/XN1gDNJNGC JOzvl5YyGUvD8MZzXf5osjsta+96ztiHV5B3+4BKeaY1yBlYfcMejeJSAVebxB9QuVlV SDmZSPiriclg6v8KnXcYvqeWUBl5yRbWzy8HzQRrQ3ivcMxTK8fE5E92aw4AK0Zvd5zd JTew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x205si1196482pgx.402.2018.02.28.09.04.42; Wed, 28 Feb 2018 09:05:14 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753320AbeB1RDI (ORCPT + 99 others); Wed, 28 Feb 2018 12:03:08 -0500 Received: from fw-tnat.cambridge.arm.com ([217.140.96.140]:55391 "EHLO cam-smtp0.cambridge.arm.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933613AbeB1Pvt (ORCPT ); Wed, 28 Feb 2018 10:51:49 -0500 X-Greylist: delayed 1432 seconds by postgrey-1.27 at vger.kernel.org; Wed, 28 Feb 2018 10:51:48 EST Received: from e110455-lin.cambridge.arm.com (e110455-lin.cambridge.arm.com [10.2.131.15]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id w1SFRfSW026594; Wed, 28 Feb 2018 15:27:41 GMT From: Liviu Dudau To: DRI-devel Cc: Daniel Vetter , Sean Paul , David Airlie , Gustavo Padovan , Maarten Lankhorst , LKML , Liviu Dudau Subject: [PATCH] drm/drm_ioctl.c: Test client capability value early when setting. Date: Wed, 28 Feb 2018 15:27:41 +0000 Message-Id: <20180228152741.22507-1-Liviu.Dudau@arm.com> X-Mailer: git-send-email 2.16.2 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The drm_setclientcap() function implementing the DRM_IOCTL_SET_CLIENT_CAP ioctl expects that any capability set by the client will have a value of 1. Make the check early so that we don't have to test the value for each capability. Signed-off-by: Liviu Dudau --- drivers/gpu/drm/drm_ioctl.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index af782911c505..02ffa0e8d77b 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -306,22 +306,19 @@ drm_setclientcap(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_set_client_cap *req = data; + if (req->value > 1) + return -EINVAL; + switch (req->capability) { case DRM_CLIENT_CAP_STEREO_3D: - if (req->value > 1) - return -EINVAL; file_priv->stereo_allowed = req->value; break; case DRM_CLIENT_CAP_UNIVERSAL_PLANES: - if (req->value > 1) - return -EINVAL; file_priv->universal_planes = req->value; break; case DRM_CLIENT_CAP_ATOMIC: if (!drm_core_check_feature(dev, DRIVER_ATOMIC)) return -EINVAL; - if (req->value > 1) - return -EINVAL; file_priv->atomic = req->value; file_priv->universal_planes = req->value; break; -- 2.16.2