Hi Rob, > > > diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h > > > index 35e7f44c2a75..987e78b18244 100644 > > > --- a/include/drm/drm_gem.h > > > +++ b/include/drm/drm_gem.h > > > @@ -327,7 +327,7 @@ struct drm_gem_object { > > > * non-static version of this you're probably doing it wrong and will break the > > > * THIS_MODULE reference by accident. > > > */ > > > -#define DEFINE_DRM_GEM_FOPS(name) \ > > > +#define DEFINE_DRM_GEM_FOPS(name, ...) \ > > > static const struct file_operations name = {\ > > > .owner = THIS_MODULE,\ > > > .open = drm_open,\ > > > @@ -338,6 +338,7 @@ struct drm_gem_object { > > > .read = drm_read,\ > > > .llseek = noop_llseek,\ > > > .mmap = drm_gem_mmap,\ > > > + ##__VA_ARGS__\ > > > } > > > > Would it not be less convoluted to make the macro only provide > > the initializers? So you'd get something like: > > > > static const struct file_operations foo = { > > DRM_GEM_FOPS, > > .my_stuff = whatever, > > }; > > > > Hmm, I like my color of the bikeshed, but I guess it is a matter of opinion ;-) Or less surprise. Most similar macros provides initializers only. Try "git grep DRM_.*OPS | grep define" in include/drm and take a look at the hits. Sam