[ovs-dev] [PATCH] travis: Disable check for array of flexible structures in sparse.

Ilya Maximets i.maximets at ovn.org
Fri Oct 9 15:26:36 UTC 2020


On 10/9/20 10:16 AM, Numan Siddique wrote:
> On Wed, Oct 7, 2020 at 7:49 PM Ilya Maximets <i.maximets at ovn.org> wrote:
>>
>> Sparse introduced new checks for flexible arrays and there is a
>> false-positive in netdev-linux implementation right now that can not
>> be easily fixed.  Patch sent to sparse to fix it, but we need to
>> disable the check for now to unblock our CI.
>>
>>   lib/netdev-linux.c:1238:19: error: array of flexible structures
>>
>> The issue is with the following code:
>>
>>   union {
>>       struct cmsghdr cmsg;
>>       char buffer[CMSG_SPACE(sizeof(struct tpacket_auxdata))];
>>   } cmsg_buffers[NETDEV_MAX_BURST];
>>
>> 'struct cmsghdr' contains a flexible array.  But this union is a way
>> to ensure correct alignment of 'buffer', suggested by CMSG manpage.
>>
>> Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
> 
> Acked-by: Numan Siddique <numans at ovn.org>

Thanks, Numan!

I'm really sorry, but I lost your 'Acked-by' while applying the patch. :(

> 
> Numan
> 
>> ---
>>
>> Sparse fix: https://patchwork.kernel.org/patch/11820475/
>>
>> I'd like to hold this for a day or two to see if we can get fix inside
>> sparse itself accepted quickly.  If not, this will need to go down to 2.12.

It seems that getting fix in Sparse will take some time, so
I applied this patch to master and down to branch-2.13.

2.12 doesn't need it since the problematic code was introduced in 2.13.

Best regards, Ilya Maximets.

>>
>>  .travis/linux-build.sh | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
>> index 6981d1d47..6b6935794 100755
>> --- a/.travis/linux-build.sh
>> +++ b/.travis/linux-build.sh
>> @@ -4,7 +4,7 @@ set -o errexit
>>  set -x
>>
>>  CFLAGS_FOR_OVS="-g -O2"
>> -SPARSE_FLAGS=""
>> +SPARSE_FLAGS="-Wno-flexible-array-array"
>>  EXTRA_OPTS="--enable-Werror"
>>
>>  function install_kernel()
>> --
>> 2.25.4


More information about the dev mailing list