Re: [RFC PATCH 6/6] char: fastrpc: Add support for compat ioctls

From: Arnd Bergmann
Date: Fri Nov 30 2018 - 08:46:48 EST


On Fri, Nov 30, 2018 at 2:20 PM Thierry Escande
<thierry.escande@xxxxxxxxxx> wrote:
> On 30/11/2018 13:58, Arnd Bergmann wrote:
> > On Fri, Nov 30, 2018 at 11:48 AM Srinivas Kandagatla
> > <srinivas.kandagatla@xxxxxxxxxx> wrote:
> >>
> >> From: Thierry Escande <thierry.escande@xxxxxxxxxx>
> >>
> >> This patch adds support for compat ioctl from 32 bits userland to
> >> Qualcomm fastrpc driver.
> >>
> >> Supported ioctls in this change are INIT, INVOKE, and ALLOC/FREE_DMA.
> >>
> >> Most of the work is derived from various downstream Qualcomm kernels.
> >> Credits to various Qualcomm authors who have contributed to this code.
> >> Specially Tharun Kumar Merugu <mtharu@xxxxxxxxxxxxxx>
> >>
> >> Signed-off-by: Thierry Escande <thierry.escande@xxxxxxxxxx>
> >> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> >
> > Can't you just define the native ioctls so that you don't need this.
>
> There are long time defined structures that are passed as argument to
> these ioctls and their sizes vary between 32 and 64 bits userlands, so
> the ioctl command values.

Where? I don't see them in linux-4.19.

> Unless I'm missing something here this also has the advantage not to be
> compiled if CONFIG_COMPAT is not set.

You can normally just set .compat_ioctl() to the same function as
.unlocked_ioctl(), and get no overhead either way.

Arnd