Re: [PATCH] mmc: block: Add new ioctl to send multi commands

Jon Hunter
2015-09-10T18:21:02Z

On 10/09/15 18:10, Grant Grundler wrote:
> On Thu, Sep 10, 2015 at 1:24 AM, Jon Hunter <jonathanh@nvidia.com> wrote:
> ...
>>> - you have some implicit padding after the structure and should replace that
>>> with explictit pad bytes to extend the structure to a multiple of its
>>> alignment (8 bytes).
>>
>> Would padding with __u32 at the end be sufficient here? I assume the
>> __u32 would be 32-bit aligned. However, was not sure if this would
>> always be the case.
>
> Is there something wrong with implicit padding?
> Only one copy of the structure is passed to the kernel for any given call.
>
>>>>> struct mmc_ioc_multi_cmd {
>>>>> __u64 num_of_cmds;
>>>>> struct mmc_ioc_cmd cmds[0];
>>>>> };
>
> I think this would work just as well. But doesn't "pointer to an
> array" require 32-bit ioctl compat handling?
> We were trying to avoid a 32-bit user space compatibility handler.

I think that this is fine as it is a zero length array [0] and not a
pointer.

Cheers
Jon

[0] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html