All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	DRI-devel <dri-devel@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drm/drm_ioctl.c: Test client capability value early when setting.
Date: Tue, 6 Mar 2018 11:13:31 +0100	[thread overview]
Message-ID: <20180306101331.GD22212@phenom.ffwll.local> (raw)
In-Reply-To: <20180228163430.GB20827@e110455-lin.cambridge.arm.com>

On Wed, Feb 28, 2018 at 04:34:30PM +0000, Liviu Dudau wrote:
> On Wed, Feb 28, 2018 at 05:57:15PM +0200, Ville Syrjälä wrote:
> > On Wed, Feb 28, 2018 at 03:44:44PM +0000, Liviu Dudau wrote:
> > > On Wed, Feb 28, 2018 at 05:40:41PM +0200, Ville Syrjälä wrote:
> > > > 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?
> > > 
> > > Well, I'm adding another boolean capability soon, so you will be going
> > > against the trend :)
> > 
> > Plenty of non-bools in driver specific counterparts I believe.
> 
> So, is that a NACK? 

Yeah I think this is overoptimizing for not repeating code.
-Daniel

> 
> 
> > 
> > > I guess you will have 2 options: revert the patch or add a condition to
> > > the test.
> > > 
> > > I don't have strong feelings, just felt like too much copying when
> > > adding another capability so I thought to do some "cleanup".
> > > 
> > > Best regards,
> > > Liviu
> > > 
> > > > 
> > > > > 
> > > > > 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
> > > 
> > > -- 
> > > ====================
> > > | I would like to |
> > > | fix the world,  |
> > > | but they're not |
> > > | giving me the   |
> > >  \ source code!  /
> > >   ---------------
> > >     ¯\_(ツ)_/¯
> > 
> > -- 
> > Ville Syrjälä
> > Intel OTC
> 
> -- 
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
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: Daniel Vetter <daniel@ffwll.ch>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	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: Tue, 6 Mar 2018 11:13:31 +0100	[thread overview]
Message-ID: <20180306101331.GD22212@phenom.ffwll.local> (raw)
In-Reply-To: <20180228163430.GB20827@e110455-lin.cambridge.arm.com>

On Wed, Feb 28, 2018 at 04:34:30PM +0000, Liviu Dudau wrote:
> On Wed, Feb 28, 2018 at 05:57:15PM +0200, Ville Syrjälä wrote:
> > On Wed, Feb 28, 2018 at 03:44:44PM +0000, Liviu Dudau wrote:
> > > On Wed, Feb 28, 2018 at 05:40:41PM +0200, Ville Syrjälä wrote:
> > > > 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?
> > > 
> > > Well, I'm adding another boolean capability soon, so you will be going
> > > against the trend :)
> > 
> > Plenty of non-bools in driver specific counterparts I believe.
> 
> So, is that a NACK? 

Yeah I think this is overoptimizing for not repeating code.
-Daniel

> 
> 
> > 
> > > I guess you will have 2 options: revert the patch or add a condition to
> > > the test.
> > > 
> > > I don't have strong feelings, just felt like too much copying when
> > > adding another capability so I thought to do some "cleanup".
> > > 
> > > Best regards,
> > > Liviu
> > > 
> > > > 
> > > > > 
> > > > > 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
> > > 
> > > -- 
> > > ====================
> > > | I would like to |
> > > | fix the world,  |
> > > | but they're not |
> > > | giving me the   |
> > >  \ source code!  /
> > >   ---------------
> > >     ¯\_(ツ)_/¯
> > 
> > -- 
> > Ville Syrjälä
> > Intel OTC
> 
> -- 
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2018-03-06 10:13 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ä
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 [this message]
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=20180306101331.GD22212@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --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.