On Tue, Jan 14, 2020 at 09:41:01PM +0800, Martin Liu wrote: CC more MLs for winder review. > This commit adds SET_NAME ioctl coversion to > support 32 bit ioctl. > > Signed-off-by: Martin Liu <liumartin@xxxxxxxxxx> > --- > drivers/dma-buf/dma-buf.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index ce41cd9b758a..a73048b34843 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -25,6 +25,7 @@ > #include <linux/mm.h> > #include <linux/mount.h> > #include <linux/pseudo_fs.h> > +#include <linux/compat.h> > > #include <uapi/linux/dma-buf.h> > #include <uapi/linux/magic.h> > @@ -409,13 +410,32 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file) > dma_resv_unlock(dmabuf->resv); > } > > +#ifdef CONFIG_COMPAT > +static long dma_buf_ioctl_compat(struct file *file, unsigned int cmd, > + unsigned long arg) > +{ > + switch (_IOC_NR(cmd)) { > + case _IOC_NR(DMA_BUF_SET_NAME): > + /* Fix up pointer size*/ > + if (_IOC_SIZE(cmd) == sizeof(compat_uptr_t)) { > + cmd &= ~IOCSIZE_MASK; > + cmd |= sizeof(void *) << IOCSIZE_SHIFT; > + } > + break; > + } > + return dma_buf_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); > +} > +#endif > + > static const struct file_operations dma_buf_fops = { > .release = dma_buf_release, > .mmap = dma_buf_mmap_internal, > .llseek = dma_buf_llseek, > .poll = dma_buf_poll, > .unlocked_ioctl = dma_buf_ioctl, > - .compat_ioctl = compat_ptr_ioctl, > +#ifdef CONFIG_COMPAT > + .compat_ioctl = dma_buf_ioctl_compat, > +#endif > .show_fdinfo = dma_buf_show_fdinfo, > }; > > -- > 2.25.0.rc1.283.g88dfdc4193-goog >