From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: David Airlie <airlied@linux.ie>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
LKML <linux-kernel@vger.kernel.org>,
DRI-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH] drm/drm_ioctl.c: Test client capability value early when setting.
Date: Wed, 28 Feb 2018 17:40:41 +0200 [thread overview]
Message-ID: <20180228154041.GK5453@intel.com> (raw)
In-Reply-To: <20180228152741.22507-1-Liviu.Dudau@arm.com>
On Wed, Feb 28, 2018 at 03:27:41PM +0000, Liviu Dudau wrote:
> 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.
What if we want a a non-boolean capability at some point?
>
> Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
> ---
> 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
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrjälä
Intel OTC
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: DRI-devel <dri-devel@lists.freedesktop.org>,
David Airlie <airlied@linux.ie>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drm/drm_ioctl.c: Test client capability value early when setting.
Date: Wed, 28 Feb 2018 17:40:41 +0200 [thread overview]
Message-ID: <20180228154041.GK5453@intel.com> (raw)
In-Reply-To: <20180228152741.22507-1-Liviu.Dudau@arm.com>
On Wed, Feb 28, 2018 at 03:27:41PM +0000, Liviu Dudau wrote:
> 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.
What if we want a a non-boolean capability at some point?
>
> Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
> ---
> 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
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2018-02-28 15:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 15:27 [PATCH] drm/drm_ioctl.c: Test client capability value early when setting Liviu Dudau
2018-02-28 15:27 ` Liviu Dudau
2018-02-28 15:40 ` Ville Syrjälä [this message]
2018-02-28 15:40 ` Ville Syrjälä
2018-02-28 15:44 ` Liviu Dudau
2018-02-28 15:44 ` Liviu Dudau
2018-02-28 15:57 ` Ville Syrjälä
2018-02-28 15:57 ` Ville Syrjälä
2018-02-28 16:34 ` Liviu Dudau
2018-02-28 16:34 ` Liviu Dudau
2018-03-06 10:13 ` Daniel Vetter
2018-03-06 10:13 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180228154041.GK5453@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=Liviu.Dudau@arm.com \
--cc=airlied@linux.ie \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.