[PATCH v5 13/29] compat_ioctl: move more drivers to compat_ptr_ioctl

Dan Williams dan.j.williams at intel.com
Tue Jul 30 20:14:52 UTC 2019


On Tue, Jul 30, 2019 at 12:59 PM Arnd Bergmann <arnd at arndb.de> wrote:
>
> The .ioctl and .compat_ioctl file operations have the same prototype so
> they can both point to the same function, which works great almost all
> the time when all the commands are compatible.
>
> One exception is the s390 architecture, where a compat pointer is only
> 31 bit wide, and converting it into a 64-bit pointer requires calling
> compat_ptr(). Most drivers here will never run in s390, but since we now
> have a generic helper for it, it's easy enough to use it consistently.
>
> I double-checked all these drivers to ensure that all ioctl arguments
> are used as pointers or are ignored, but are not interpreted as integer
> values.
>
> Acked-by: Jason Gunthorpe <jgg at mellanox.com>
> Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Acked-by: Mauro Carvalho Chehab <mchehab+samsung at kernel.org>
> Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Acked-by: David Sterba <dsterba at suse.com>
> Acked-by: Darren Hart (VMware) <dvhart at infradead.org>
> Acked-by: Jonathan Cameron <Jonathan.Cameron at huawei.com>
> Acked-by: Bjorn Andersson <bjorn.andersson at linaro.org>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> ---
>  drivers/nvdimm/bus.c                        | 4 ++--
[..]
> diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c
> index 798c5c4aea9c..6ca142d833ab 100644
> --- a/drivers/nvdimm/bus.c
> +++ b/drivers/nvdimm/bus.c
> @@ -1229,7 +1229,7 @@ static const struct file_operations nvdimm_bus_fops = {
>         .owner = THIS_MODULE,
>         .open = nd_open,
>         .unlocked_ioctl = bus_ioctl,
> -       .compat_ioctl = bus_ioctl,
> +       .compat_ioctl = compat_ptr_ioctl,
>         .llseek = noop_llseek,
>  };
>
> @@ -1237,7 +1237,7 @@ static const struct file_operations nvdimm_fops = {
>         .owner = THIS_MODULE,
>         .open = nd_open,
>         .unlocked_ioctl = dimm_ioctl,
> -       .compat_ioctl = dimm_ioctl,
> +       .compat_ioctl = compat_ptr_ioctl,
>         .llseek = noop_llseek,
>  };

Acked-by: Dan Williams <dan.j.williams at intel.com>


More information about the dri-devel mailing list