On Fri, Nov 30, 2018 at 10:14 AM Arnd Bergmann <a...@arndb.de> wrote: > > On Fri, Nov 30, 2018 at 4:02 PM Rob Clark <robdcl...@gmail.com> wrote: > > > > > - > > -#define MSM_INFO_FLAGS (MSM_INFO_IOVA) > > +/* Get or set GEM buffer info. The requested value can be passed > > + * directly in 'value', or for data larger than 64b 'value' is a > > + * pointer to userspace buffer, with 'len' specifying the number of > > + * bytes copied into that buffer. For info returned by pointer, > > + * calling the GEM_INFO ioctl with null 'value' will return the > > + * required buffer size in 'len' > > + */ > > +#define MSM_INFO_GET_OFFSET 0x00 /* get mmap() offset, returned by > > value */ > > +#define MSM_INFO_GET_IOVA 0x01 /* get iova, returned by value */ > > > > struct drm_msm_gem_info { > > __u32 handle; /* in */ > > - __u32 flags; /* in - combination of MSM_INFO_* flags */ > > - __u64 offset; /* out, mmap() offset or iova */ > > + __u32 info; /* in - one of MSM_INFO_* */ > > + __u64 value; /* in or out */ > > + __u32 len; /* in or out */ > > }; > > As structure with implicit padding has the problem of possibly leaking > kernel stack data. It's better to make the padding explicit here so you > can zero it from the kernel. Also, as I mentioned in the other patch, > you probably need a new data structure and ioctl command number > to keep compatiblity with the old interface.
hmm, right, pad field is a good idea. As far as compat, drm_ioctl() handles zero-padding so adding new ioctl struct members at the end is safe (as long as a zero value somehow results in previous behavior) BR, -R > > Arnd _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno