On Mon, Jun 6, 2022 at 11:56 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > > Hi > > Am 06.06.22 um 21:54 schrieb Rob Clark: > > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > > > The DEFINE_DRM_GEM_FOPS() helper is a bit limiting if a driver wants to > > provide additional file ops, like show_fdinfo(). > > > > Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx> > > --- > > include/drm/drm_gem.h | 26 ++++++++++++++++++-------- > > 1 file changed, 18 insertions(+), 8 deletions(-) > > > > diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h > > index 9d7c61a122dc..dc88d4a2cdf6 100644 > > --- a/include/drm/drm_gem.h > > +++ b/include/drm/drm_gem.h > > @@ -314,6 +314,23 @@ struct drm_gem_object { > > const struct drm_gem_object_funcs *funcs; > > }; > > > > +/** > > + * DRM_GEM_FOPS - Default drm GEM file operations > > + * > > + * This macro provides a shorthand for setting the GEM file ops in the > > + * &file_operations structure. > > I would appreciate a reference to DEFINE_DRM_GEM_FOPS. Something along > the lines of 'if all you need are the default ops, use DEFINE_DRM_GEM_FOPS'. > > > + */ > > +#define DRM_GEM_FOPS \ > > + .open = drm_open,\ > > + .release = drm_release,\ > > + .unlocked_ioctl = drm_ioctl,\ > > + .compat_ioctl = drm_compat_ioctl,\ > > + .poll = drm_poll,\ > > + .read = drm_read,\ > > + .llseek = noop_llseek,\ > > + .mmap = drm_gem_mmap > > + > > + > > Only one empty line please. > > > /** > > * DEFINE_DRM_GEM_FOPS() - macro to generate file operations for GEM drivers > > * @name: name for the generated structure > > @@ -330,14 +347,7 @@ struct drm_gem_object { > > #define DEFINE_DRM_GEM_FOPS(name) \ > > static const struct file_operations name = {\ > > .owner = THIS_MODULE,\ > > Is there a specific reason why .owner is still set here? I suspect that > DRM_GEM_FOPS is strictly for callback functions? I was on the fence about that one, but it seemed better to not mix "magic" and the callbacks.. but I could be convinced in either direction > In any case > > Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx> thx, I'll fixup the other nits in v3. > > Best regards > Thomas > > > - .open = drm_open,\ > > - .release = drm_release,\ > > - .unlocked_ioctl = drm_ioctl,\ > > - .compat_ioctl = drm_compat_ioctl,\ > > - .poll = drm_poll,\ > > - .read = drm_read,\ > > - .llseek = noop_llseek,\ > > - .mmap = drm_gem_mmap,\ > > + DRM_GEM_FOPS,\ > > } > > > > void drm_gem_object_release(struct drm_gem_object *obj); > > -- > Thomas Zimmermann > Graphics Driver Developer > SUSE Software Solutions Germany GmbH > Maxfeldstr. 5, 90409 Nürnberg, Germany > (HRB 36809, AG Nürnberg) > Geschäftsführer: Ivo Totev