* [PATCH 0/6] drm: Ioctl code cleanups
@ 2015-03-27 13:51 ville.syrjala
2015-03-27 13:51 ` [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() ville.syrjala
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw)
To: dri-devel
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
In response to a recently noticed fumble with some i915 ioctls, I
proceeded to read the ioctl code again and didn't really like what
I saw. So I tried to clean it up a bit to make it less confusing.
grep also tells me the drm_ioctl pattern has been dutifully copied
into amdkfd so it could perhaps use the same treatment too, but I
don't have much interest in going there so left it alone.
Ville Syrjälä (6):
drm: Fix DRM_IOCTL_DEF_DRV()
drm: Drop ioctl->cmd_drv
drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV
drm: Simplify core vs. drv ioctl handling
drm: Use max() to make the ioctl alloc size code cleaner
drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code
drivers/gpu/drm/drm_ioctl.c | 53 ++++++--------
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 136 +++++++++++++++++-------------------
include/drm/drmP.h | 3 +-
3 files changed, 87 insertions(+), 105 deletions(-)
--
2.0.5
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 14+ messages in thread* [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala @ 2015-03-27 13:51 ` ville.syrjala 2015-03-27 15:14 ` Emil Velikov 2015-03-27 13:51 ` [PATCH 2/6] drm: Drop ioctl->cmd_drv ville.syrjala ` (5 subsequent siblings) 6 siblings, 1 reply; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw) To: dri-devel From: Ville Syrjälä <ville.syrjala@linux.intel.com> Currently DRM_IOCTL_DEF_DRV does '[DRM_IOCTL_NR(DRM_##ioctl)]' which doesn't make much sense since DRM_##ioctl is already a the raw ioctl number. So change it to 'DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE' which means the DRM_IOCTL_NR() now makes sense, and also this also means if there's a mistake in the DRM_IOCTL_##ioctl macros we might get a warning about it (eg. we would have gotten a sparse warning about the i915 colorkey get/set ioctl being defined to be the same thing). Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- include/drm/drmP.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 63c0b01..6195ee9b 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -263,7 +263,7 @@ struct drm_ioctl_desc { */ #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} /* Event queued up for userspace to read */ struct drm_pending_event { -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() 2015-03-27 13:51 ` [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() ville.syrjala @ 2015-03-27 15:14 ` Emil Velikov 2015-03-30 11:23 ` Ville Syrjälä 0 siblings, 1 reply; 14+ messages in thread From: Emil Velikov @ 2015-03-27 15:14 UTC (permalink / raw) To: Ville Syrjälä; +Cc: ML dri-devel Hi Ville, On 27 March 2015 at 13:51, <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Currently DRM_IOCTL_DEF_DRV does '[DRM_IOCTL_NR(DRM_##ioctl)]' which > doesn't make much sense since DRM_##ioctl is already a the raw ioctl > number. So change it to 'DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE' > which means the DRM_IOCTL_NR() now makes sense, and also this also means > if there's a mistake in the DRM_IOCTL_##ioctl macros we might get a > warning about it (eg. we would have gotten a sparse warning about the > i915 colorkey get/set ioctl being defined to be the same thing). > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > include/drm/drmP.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index 63c0b01..6195ee9b 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -263,7 +263,7 @@ struct drm_ioctl_desc { > */ > > #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ > - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} > + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} > Humble request: Can you split this long line to something line the following. It should improve the overall readability. Plus is will make your follow up changes clearer. + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = { \ + .cmd = DRM_##ioctl, \ + .func = _func, \ + .flags = _flags, \ + .cmd_drv = DRM_IOCTL_##ioctl, \ + .name = #ioctl \ + } Cheers, Emil _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() 2015-03-27 15:14 ` Emil Velikov @ 2015-03-30 11:23 ` Ville Syrjälä 2015-03-30 12:58 ` [PATCH] drm: line wrap DRM_IOCTL_DEF* macros Emil Velikov 0 siblings, 1 reply; 14+ messages in thread From: Ville Syrjälä @ 2015-03-30 11:23 UTC (permalink / raw) To: Emil Velikov; +Cc: ML dri-devel On Fri, Mar 27, 2015 at 03:14:10PM +0000, Emil Velikov wrote: > Hi Ville, > > On 27 March 2015 at 13:51, <ville.syrjala@linux.intel.com> wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Currently DRM_IOCTL_DEF_DRV does '[DRM_IOCTL_NR(DRM_##ioctl)]' which > > doesn't make much sense since DRM_##ioctl is already a the raw ioctl > > number. So change it to 'DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE' > > which means the DRM_IOCTL_NR() now makes sense, and also this also means > > if there's a mistake in the DRM_IOCTL_##ioctl macros we might get a > > warning about it (eg. we would have gotten a sparse warning about the > > i915 colorkey get/set ioctl being defined to be the same thing). > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > include/drm/drmP.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > > index 63c0b01..6195ee9b 100644 > > --- a/include/drm/drmP.h > > +++ b/include/drm/drmP.h > > @@ -263,7 +263,7 @@ struct drm_ioctl_desc { > > */ > > > > #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ > > - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} > > + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} > > > Humble request: Can you split this long line to something line the > following. It should improve the overall readability. > Plus is will make your follow up changes clearer. > > + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = { \ > + .cmd = DRM_##ioctl, \ > + .func = _func, \ > + .flags = _flags, \ > + .cmd_drv = DRM_IOCTL_##ioctl, \ > + .name = #ioctl \ > + } Daniel already picked these up, so my work is done ;) But feel free to toss in a followup. -- Ville Syrjälä Intel OTC _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] drm: line wrap DRM_IOCTL_DEF* macros 2015-03-30 11:23 ` Ville Syrjälä @ 2015-03-30 12:58 ` Emil Velikov 2015-03-30 14:51 ` Daniel Vetter 2015-03-30 17:10 ` [PATCH v2] " Emil Velikov 0 siblings, 2 replies; 14+ messages in thread From: Emil Velikov @ 2015-03-30 12:58 UTC (permalink / raw) To: dri-devel; +Cc: emil.l.velikov Improve the readability and keeps the lines shorter than 80 columns. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> --- Written against drm-intel/topic/drm-misc. -Emil --- drivers/gpu/drm/drm_ioctl.c | 10 ++++++++-- include/drm/drmP.h | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index a6d773a..ae50f7b 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -524,8 +524,14 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) return 0; } -#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .cmd_drv = 0, .name = #ioctl} +#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ + [DRM_IOCTL_NR(ioctl)] = { \ + .cmd = ioctl, \ + .func = _func, \ + .flags = _flags, \ + .cmd_drv = 0, \ + .name = #ioctl \ + } /** Ioctl table */ static const struct drm_ioctl_desc drm_ioctls[] = { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 63c0b01..c95543c 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -263,7 +263,13 @@ struct drm_ioctl_desc { */ #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} + [DRM_IOCTL_NR(DRM_##ioctl)] = { \ + .cmd = DRM_##ioctl, \ + .func = _func, \ + .flags = _flags, \ + .cmd_drv = DRM_IOCTL_##ioctl, \ + .name = #ioctl \ + } /* Event queued up for userspace to read */ struct drm_pending_event { -- 2.1.3 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] drm: line wrap DRM_IOCTL_DEF* macros 2015-03-30 12:58 ` [PATCH] drm: line wrap DRM_IOCTL_DEF* macros Emil Velikov @ 2015-03-30 14:51 ` Daniel Vetter 2015-03-30 17:10 ` [PATCH v2] " Emil Velikov 1 sibling, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2015-03-30 14:51 UTC (permalink / raw) To: Emil Velikov; +Cc: dri-devel On Mon, Mar 30, 2015 at 12:58:10PM +0000, Emil Velikov wrote: > Improve the readability and keeps the lines shorter than 80 columns. > > Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> > --- > > Written against drm-intel/topic/drm-misc. Ah I've forgotten to push it out, silly me. Can you please rebase? Thanks, Daniel > > -Emil > > --- > drivers/gpu/drm/drm_ioctl.c | 10 ++++++++-- > include/drm/drmP.h | 8 +++++++- > 2 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > index a6d773a..ae50f7b 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -524,8 +524,14 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) > return 0; > } > > -#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ > - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .cmd_drv = 0, .name = #ioctl} > +#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ > + [DRM_IOCTL_NR(ioctl)] = { \ > + .cmd = ioctl, \ > + .func = _func, \ > + .flags = _flags, \ > + .cmd_drv = 0, \ > + .name = #ioctl \ > + } > > /** Ioctl table */ > static const struct drm_ioctl_desc drm_ioctls[] = { > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index 63c0b01..c95543c 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -263,7 +263,13 @@ struct drm_ioctl_desc { > */ > > #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ > - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} > + [DRM_IOCTL_NR(DRM_##ioctl)] = { \ > + .cmd = DRM_##ioctl, \ > + .func = _func, \ > + .flags = _flags, \ > + .cmd_drv = DRM_IOCTL_##ioctl, \ > + .name = #ioctl \ > + } > > /* Event queued up for userspace to read */ > struct drm_pending_event { > -- > 2.1.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2] drm: line wrap DRM_IOCTL_DEF* macros 2015-03-30 12:58 ` [PATCH] drm: line wrap DRM_IOCTL_DEF* macros Emil Velikov 2015-03-30 14:51 ` Daniel Vetter @ 2015-03-30 17:10 ` Emil Velikov 2015-03-31 7:18 ` Daniel Vetter 1 sibling, 1 reply; 14+ messages in thread From: Emil Velikov @ 2015-03-30 17:10 UTC (permalink / raw) To: dri-devel; +Cc: emil.l.velikov Improve the readability and keeps the lines shorter than 80 columns. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> --- v2: Rebased against drm-intel topic/drm-misc, commit a0211bb482c(drm/atomic: Don't try to free a NULL state) -Emil --- drivers/gpu/drm/drm_ioctl.c | 9 +++++++-- include/drm/drmP.h | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 1f257ae..266dcd6 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -524,8 +524,13 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) return 0; } -#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .name = #ioctl} +#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ + [DRM_IOCTL_NR(ioctl)] = { \ + .cmd = ioctl, \ + .func = _func, \ + .flags = _flags, \ + .name = #ioctl \ + } /** Ioctl table */ static const struct drm_ioctl_desc drm_ioctls[] = { diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 0d501ed..62c40777 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -261,8 +261,13 @@ struct drm_ioctl_desc { * ioctl, for use by drm_ioctl(). */ -#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_IOCTL_##ioctl, .func = _func, .flags = _flags, .name = #ioctl} +#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = { \ + .cmd = DRM_IOCTL_##ioctl, \ + .func = _func, \ + .flags = _flags, \ + .name = #ioctl \ + } /* Event queued up for userspace to read */ struct drm_pending_event { -- 2.1.3 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2] drm: line wrap DRM_IOCTL_DEF* macros 2015-03-30 17:10 ` [PATCH v2] " Emil Velikov @ 2015-03-31 7:18 ` Daniel Vetter 0 siblings, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2015-03-31 7:18 UTC (permalink / raw) To: Emil Velikov; +Cc: dri-devel On Mon, Mar 30, 2015 at 05:10:36PM +0000, Emil Velikov wrote: > Improve the readability and keeps the lines shorter than 80 columns. > > Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Applied to topic/drm-misc, thanks. -Daniel > --- > > v2: Rebased against drm-intel topic/drm-misc, commit > a0211bb482c(drm/atomic: Don't try to free a NULL state) > > -Emil > > --- > drivers/gpu/drm/drm_ioctl.c | 9 +++++++-- > include/drm/drmP.h | 9 +++++++-- > 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > index 1f257ae..266dcd6 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -524,8 +524,13 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) > return 0; > } > > -#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ > - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .name = #ioctl} > +#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ > + [DRM_IOCTL_NR(ioctl)] = { \ > + .cmd = ioctl, \ > + .func = _func, \ > + .flags = _flags, \ > + .name = #ioctl \ > + } > > /** Ioctl table */ > static const struct drm_ioctl_desc drm_ioctls[] = { > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index 0d501ed..62c40777 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -261,8 +261,13 @@ struct drm_ioctl_desc { > * ioctl, for use by drm_ioctl(). > */ > > -#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ > - [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_IOCTL_##ioctl, .func = _func, .flags = _flags, .name = #ioctl} > +#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ > + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = { \ > + .cmd = DRM_IOCTL_##ioctl, \ > + .func = _func, \ > + .flags = _flags, \ > + .name = #ioctl \ > + } > > /* Event queued up for userspace to read */ > struct drm_pending_event { > -- > 2.1.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/6] drm: Drop ioctl->cmd_drv 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala 2015-03-27 13:51 ` [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() ville.syrjala @ 2015-03-27 13:51 ` ville.syrjala 2015-03-27 13:51 ` [PATCH 3/6] drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV ville.syrjala ` (4 subsequent siblings) 6 siblings, 0 replies; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw) To: dri-devel; +Cc: Jakob Bornecrantz, Thomas Hellstrom From: Ville Syrjälä <ville.syrjala@linux.intel.com> ioctl->cmd_drv is pointless and we can just as well stick the full ioctl definition into ioctl->cmd. Cc: Jakob Bornecrantz <jakob@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_ioctl.c | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 ++-- include/drm/drmP.h | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index a6d773a..fc0cf4a 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -525,7 +525,7 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) } #define DRM_IOCTL_DEF(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .cmd_drv = 0, .name = #ioctl} + [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .name = #ioctl} /** Ioctl table */ static const struct drm_ioctl_desc drm_ioctls[] = { @@ -677,11 +677,11 @@ long drm_ioctl(struct file *filp, (nr < DRM_COMMAND_BASE + dev->driver->num_ioctls)) { u32 drv_size; ioctl = &dev->driver->ioctls[nr - DRM_COMMAND_BASE]; - drv_size = _IOC_SIZE(ioctl->cmd_drv); + drv_size = _IOC_SIZE(ioctl->cmd); usize = asize = _IOC_SIZE(cmd); if (drv_size > asize) asize = drv_size; - cmd = ioctl->cmd_drv; + cmd = ioctl->cmd; } else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) { u32 drv_size; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index e13b9cb..620bb5c 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -134,7 +134,7 @@ */ #define VMW_IOCTL_DEF(ioctl, func, flags) \ - [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {DRM_##ioctl, flags, func, DRM_IOCTL_##ioctl} + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {DRM_IOCTL_##ioctl, flags, func} /** * Ioctl definitions. @@ -1044,7 +1044,7 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd, const struct drm_ioctl_desc *ioctl = &vmw_ioctls[nr - DRM_COMMAND_BASE]; - if (unlikely(ioctl->cmd_drv != cmd)) { + if (unlikely(ioctl->cmd != cmd)) { DRM_ERROR("Invalid command format, ioctl %d\n", nr - DRM_COMMAND_BASE); return -EINVAL; diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 6195ee9b..0d501ed 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -253,7 +253,6 @@ struct drm_ioctl_desc { unsigned int cmd; int flags; drm_ioctl_t *func; - unsigned int cmd_drv; const char *name; }; @@ -263,7 +262,7 @@ struct drm_ioctl_desc { */ #define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl, .name = #ioctl} + [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {.cmd = DRM_IOCTL_##ioctl, .func = _func, .flags = _flags, .name = #ioctl} /* Event queued up for userspace to read */ struct drm_pending_event { -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/6] drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala 2015-03-27 13:51 ` [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() ville.syrjala 2015-03-27 13:51 ` [PATCH 2/6] drm: Drop ioctl->cmd_drv ville.syrjala @ 2015-03-27 13:51 ` ville.syrjala 2015-03-27 13:51 ` [PATCH 4/6] drm: Simplify core vs. drv ioctl handling ville.syrjala ` (3 subsequent siblings) 6 siblings, 0 replies; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw) To: dri-devel; +Cc: Jakob Bornecrantz, Thomas Hellstrom From: Ville Syrjälä <ville.syrjala@linux.intel.com> DRM_IOCTL_DEF_DRV is now identical to VMW_IOCTL_DEF (apart from the .name assignment), so just replace the use of the latter with the former. With .name now assigned this should also make decoding kernel logs a bit easier. Cc: Jakob Bornecrantz <jakob@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 134 +++++++++++++++++------------------- 1 file changed, 63 insertions(+), 71 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 620bb5c..ef74c4a 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -129,83 +129,75 @@ struct drm_vmw_synccpu_arg) /** - * The core DRM version of this macro doesn't account for - * DRM_COMMAND_BASE. - */ - -#define VMW_IOCTL_DEF(ioctl, func, flags) \ - [DRM_IOCTL_NR(DRM_IOCTL_##ioctl) - DRM_COMMAND_BASE] = {DRM_IOCTL_##ioctl, flags, func} - -/** * Ioctl definitions. */ static const struct drm_ioctl_desc vmw_ioctls[] = { - VMW_IOCTL_DEF(VMW_GET_PARAM, vmw_getparam_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_ALLOC_DMABUF, vmw_dmabuf_alloc_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_UNREF_DMABUF, vmw_dmabuf_unref_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_CURSOR_BYPASS, - vmw_kms_cursor_bypass_ioctl, - DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), - - VMW_IOCTL_DEF(VMW_CONTROL_STREAM, vmw_overlay_ioctl, - DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), - VMW_IOCTL_DEF(VMW_CLAIM_STREAM, vmw_stream_claim_ioctl, - DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), - VMW_IOCTL_DEF(VMW_UNREF_STREAM, vmw_stream_unref_ioctl, - DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), - - VMW_IOCTL_DEF(VMW_CREATE_CONTEXT, vmw_context_define_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_UNREF_CONTEXT, vmw_context_destroy_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_CREATE_SURFACE, vmw_surface_define_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_UNREF_SURFACE, vmw_surface_destroy_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_REF_SURFACE, vmw_surface_reference_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_EXECBUF, vmw_execbuf_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_FENCE_WAIT, vmw_fence_obj_wait_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_FENCE_SIGNALED, - vmw_fence_obj_signaled_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_FENCE_UNREF, vmw_fence_obj_unref_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_FENCE_EVENT, vmw_fence_event_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_GET_3D_CAP, vmw_get_cap_3d_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_GET_PARAM, vmw_getparam_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_ALLOC_DMABUF, vmw_dmabuf_alloc_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_UNREF_DMABUF, vmw_dmabuf_unref_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_CURSOR_BYPASS, + vmw_kms_cursor_bypass_ioctl, + DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), + + DRM_IOCTL_DEF_DRV(VMW_CONTROL_STREAM, vmw_overlay_ioctl, + DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), + DRM_IOCTL_DEF_DRV(VMW_CLAIM_STREAM, vmw_stream_claim_ioctl, + DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), + DRM_IOCTL_DEF_DRV(VMW_UNREF_STREAM, vmw_stream_unref_ioctl, + DRM_MASTER | DRM_CONTROL_ALLOW | DRM_UNLOCKED), + + DRM_IOCTL_DEF_DRV(VMW_CREATE_CONTEXT, vmw_context_define_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_UNREF_CONTEXT, vmw_context_destroy_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_CREATE_SURFACE, vmw_surface_define_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_UNREF_SURFACE, vmw_surface_destroy_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_REF_SURFACE, vmw_surface_reference_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_EXECBUF, vmw_execbuf_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_FENCE_WAIT, vmw_fence_obj_wait_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_FENCE_SIGNALED, + vmw_fence_obj_signaled_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_FENCE_UNREF, vmw_fence_obj_unref_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_FENCE_EVENT, vmw_fence_event_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_GET_3D_CAP, vmw_get_cap_3d_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), /* these allow direct access to the framebuffers mark as master only */ - VMW_IOCTL_DEF(VMW_PRESENT, vmw_present_ioctl, - DRM_MASTER | DRM_AUTH | DRM_UNLOCKED), - VMW_IOCTL_DEF(VMW_PRESENT_READBACK, - vmw_present_readback_ioctl, - DRM_MASTER | DRM_AUTH | DRM_UNLOCKED), - VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT, - vmw_kms_update_layout_ioctl, - DRM_MASTER | DRM_UNLOCKED), - VMW_IOCTL_DEF(VMW_CREATE_SHADER, - vmw_shader_define_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_UNREF_SHADER, - vmw_shader_destroy_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_GB_SURFACE_CREATE, - vmw_gb_surface_define_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_GB_SURFACE_REF, - vmw_gb_surface_reference_ioctl, - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), - VMW_IOCTL_DEF(VMW_SYNCCPU, - vmw_user_dmabuf_synccpu_ioctl, - DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_PRESENT, vmw_present_ioctl, + DRM_MASTER | DRM_AUTH | DRM_UNLOCKED), + DRM_IOCTL_DEF_DRV(VMW_PRESENT_READBACK, + vmw_present_readback_ioctl, + DRM_MASTER | DRM_AUTH | DRM_UNLOCKED), + DRM_IOCTL_DEF_DRV(VMW_UPDATE_LAYOUT, + vmw_kms_update_layout_ioctl, + DRM_MASTER | DRM_UNLOCKED), + DRM_IOCTL_DEF_DRV(VMW_CREATE_SHADER, + vmw_shader_define_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_UNREF_SHADER, + vmw_shader_destroy_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_GB_SURFACE_CREATE, + vmw_gb_surface_define_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_GB_SURFACE_REF, + vmw_gb_surface_reference_ioctl, + DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VMW_SYNCCPU, + vmw_user_dmabuf_synccpu_ioctl, + DRM_UNLOCKED | DRM_RENDER_ALLOW), }; static struct pci_device_id vmw_pci_id_list[] = { -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/6] drm: Simplify core vs. drv ioctl handling 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala ` (2 preceding siblings ...) 2015-03-27 13:51 ` [PATCH 3/6] drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV ville.syrjala @ 2015-03-27 13:51 ` ville.syrjala 2015-03-27 13:51 ` [PATCH 5/6] drm: Use max() to make the ioctl alloc size code cleaner ville.syrjala ` (2 subsequent siblings) 6 siblings, 0 replies; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw) To: dri-devel From: Ville Syrjälä <ville.syrjala@linux.intel.com> Now that cmd_drv is gone the handling for core and driver ioctls is mostly identical, so eliminate the duplication. Also take the opportunity to simplify the range checks to be less cluttered. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_ioctl.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index fc0cf4a..68ba014 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -663,39 +663,30 @@ long drm_ioctl(struct file *filp, int retcode = -EINVAL; char stack_kdata[128]; char *kdata = NULL; - unsigned int usize, asize; + unsigned int usize, asize, drv_size; dev = file_priv->minor->dev; if (drm_device_is_unplugged(dev)) return -ENODEV; - if ((nr >= DRM_CORE_IOCTL_COUNT) && - ((nr < DRM_COMMAND_BASE) || (nr >= DRM_COMMAND_END))) - goto err_i1; - if ((nr >= DRM_COMMAND_BASE) && (nr < DRM_COMMAND_END) && - (nr < DRM_COMMAND_BASE + dev->driver->num_ioctls)) { - u32 drv_size; + if (nr >= DRM_COMMAND_BASE && nr < DRM_COMMAND_END) { + /* driver ioctl */ + if (nr - DRM_COMMAND_BASE >= dev->driver->num_ioctls) + goto err_i1; ioctl = &dev->driver->ioctls[nr - DRM_COMMAND_BASE]; - drv_size = _IOC_SIZE(ioctl->cmd); - usize = asize = _IOC_SIZE(cmd); - if (drv_size > asize) - asize = drv_size; - cmd = ioctl->cmd; - } - else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) { - u32 drv_size; - + } else { + /* core ioctl */ + if (nr >= DRM_CORE_IOCTL_COUNT) + goto err_i1; ioctl = &drm_ioctls[nr]; + } - drv_size = _IOC_SIZE(ioctl->cmd); - usize = asize = _IOC_SIZE(cmd); - if (drv_size > asize) - asize = drv_size; - - cmd = ioctl->cmd; - } else - goto err_i1; + drv_size = _IOC_SIZE(ioctl->cmd); + usize = asize = _IOC_SIZE(cmd); + if (drv_size > asize) + asize = drv_size; + cmd = ioctl->cmd; DRM_DEBUG("pid=%d, dev=0x%lx, auth=%d, %s\n", task_pid_nr(current), -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/6] drm: Use max() to make the ioctl alloc size code cleaner 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala ` (3 preceding siblings ...) 2015-03-27 13:51 ` [PATCH 4/6] drm: Simplify core vs. drv ioctl handling ville.syrjala @ 2015-03-27 13:51 ` ville.syrjala 2015-03-27 13:52 ` [PATCH 6/6] drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code ville.syrjala 2015-03-27 15:09 ` [PATCH 0/6] drm: Ioctl code cleanups Daniel Vetter 6 siblings, 0 replies; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:51 UTC (permalink / raw) To: dri-devel From: Ville Syrjälä <ville.syrjala@linux.intel.com> Use max() to make the code to determine the allocation size for the ioctl data easier to read. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_ioctl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 68ba014..4a2bf2b 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -683,9 +683,8 @@ long drm_ioctl(struct file *filp, } drv_size = _IOC_SIZE(ioctl->cmd); - usize = asize = _IOC_SIZE(cmd); - if (drv_size > asize) - asize = drv_size; + usize = _IOC_SIZE(cmd); + asize = max(usize, drv_size); cmd = ioctl->cmd; DRM_DEBUG("pid=%d, dev=0x%lx, auth=%d, %s\n", -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/6] drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala ` (4 preceding siblings ...) 2015-03-27 13:51 ` [PATCH 5/6] drm: Use max() to make the ioctl alloc size code cleaner ville.syrjala @ 2015-03-27 13:52 ` ville.syrjala 2015-03-27 15:09 ` [PATCH 0/6] drm: Ioctl code cleanups Daniel Vetter 6 siblings, 0 replies; 14+ messages in thread From: ville.syrjala @ 2015-03-27 13:52 UTC (permalink / raw) To: dri-devel From: Ville Syrjälä <ville.syrjala@linux.intel.com> Use the same logic when checking for valid ioctl range in drm_ioctl_flags() that is used in drm_ioctl() to avoid confusion. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_ioctl.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 4a2bf2b..1f257ae 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -766,12 +766,13 @@ EXPORT_SYMBOL(drm_ioctl); */ bool drm_ioctl_flags(unsigned int nr, unsigned int *flags) { - if ((nr >= DRM_COMMAND_END && nr < DRM_CORE_IOCTL_COUNT) || - (nr < DRM_COMMAND_BASE)) { - *flags = drm_ioctls[nr].flags; - return true; - } + if (nr >= DRM_COMMAND_BASE && nr < DRM_COMMAND_END) + return false; + + if (nr >= DRM_CORE_IOCTL_COUNT) + return false; - return false; + *flags = drm_ioctls[nr].flags; + return true; } EXPORT_SYMBOL(drm_ioctl_flags); -- 2.0.5 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 0/6] drm: Ioctl code cleanups 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala ` (5 preceding siblings ...) 2015-03-27 13:52 ` [PATCH 6/6] drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code ville.syrjala @ 2015-03-27 15:09 ` Daniel Vetter 6 siblings, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2015-03-27 15:09 UTC (permalink / raw) To: ville.syrjala; +Cc: dri-devel On Fri, Mar 27, 2015 at 03:51:54PM +0200, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > In response to a recently noticed fumble with some i915 ioctls, I > proceeded to read the ioctl code again and didn't really like what > I saw. So I tried to clean it up a bit to make it less confusing. > > grep also tells me the drm_ioctl pattern has been dutifully copied > into amdkfd so it could perhaps use the same treatment too, but I > don't have much interest in going there so left it alone. > > Ville Syrjälä (6): > drm: Fix DRM_IOCTL_DEF_DRV() > drm: Drop ioctl->cmd_drv > drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV > drm: Simplify core vs. drv ioctl handling > drm: Use max() to make the ioctl alloc size code cleaner > drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code Merged all except the pure vmwgfx one to drm-misc, thanks. If Thomas wants I can pull that one in too. -Daniel > > drivers/gpu/drm/drm_ioctl.c | 53 ++++++-------- > drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 136 +++++++++++++++++------------------- > include/drm/drmP.h | 3 +- > 3 files changed, 87 insertions(+), 105 deletions(-) > > -- > 2.0.5 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-03-31 7:17 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-03-27 13:51 [PATCH 0/6] drm: Ioctl code cleanups ville.syrjala 2015-03-27 13:51 ` [PATCH 1/6] drm: Fix DRM_IOCTL_DEF_DRV() ville.syrjala 2015-03-27 15:14 ` Emil Velikov 2015-03-30 11:23 ` Ville Syrjälä 2015-03-30 12:58 ` [PATCH] drm: line wrap DRM_IOCTL_DEF* macros Emil Velikov 2015-03-30 14:51 ` Daniel Vetter 2015-03-30 17:10 ` [PATCH v2] " Emil Velikov 2015-03-31 7:18 ` Daniel Vetter 2015-03-27 13:51 ` [PATCH 2/6] drm: Drop ioctl->cmd_drv ville.syrjala 2015-03-27 13:51 ` [PATCH 3/6] drm/vmwgfx: Replace VMW_IOCTL_DEF with DRM_IOCTL_DEF_DRV ville.syrjala 2015-03-27 13:51 ` [PATCH 4/6] drm: Simplify core vs. drv ioctl handling ville.syrjala 2015-03-27 13:51 ` [PATCH 5/6] drm: Use max() to make the ioctl alloc size code cleaner ville.syrjala 2015-03-27 13:52 ` [PATCH 6/6] drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code ville.syrjala 2015-03-27 15:09 ` [PATCH 0/6] drm: Ioctl code cleanups Daniel Vetter
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.