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 <[email protected]>
> ---
>  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
> 
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to