Re: [PATCH V2] nvme: Add compat_ioctl handler for NVME_IOCTL_SUBMIT_IO

From: Keith Busch
Date: Tue Mar 17 2020 - 11:43:52 EST


On Thu, Mar 05, 2020 at 11:13:29AM +0000, masahiro31.yamada@xxxxxxxxxx wrote:
> Currently 32 bit application gets ENOTTY when it calls
> compat_ioctl with NVME_IOCTL_SUBMIT_IO in 64 bit kernel.
>
> The cause is that the results of sizeof(struct nvme_user_io),
> which is used to define NVME_IOCTL_SUBMIT_IO,
> are not same between 32 bit compiler and 64 bit compiler.
>
> * 32 bit: the result of sizeof nvme_user_io is 44.
> * 64 bit: the result of sizeof nvme_user_io is 48.
>
> 64 bit compiler seems to add 32 bit padding for multiple of 8 bytes.
>
> This patch adds a compat_ioctl handler.
> The handler replaces NVME_IOCTL_SUBMIT_IO32 with NVME_IOCTL_SUBMIT_IO
> in case 32 bit application calls compat_ioctl for submit in 64 bit kernel.
> Then, it calls nvme_ioctl as usual.
>
> Signed-off-by: Masahiro Yamada (KIOXIA) <masahiro31.yamada@xxxxxxxxxx>

Thank you, applied for 5.7.