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

From: Thierry Escande
Date: Fri Nov 30 2018 - 08:50:37 EST


On 30/11/2018 14:46, Arnd Bergmann wrote:
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.

As you suggested for the other patches in this series, we will rework these ioctl data structures and then use the same function.

Regards,
Thierry