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

Numan Siddique numans at ovn.org
Tue Oct 13 07:13:12 UTC 2020


On Fri, Oct 9, 2020 at 8:57 PM Ilya Maximets <i.maximets at ovn.org> wrote:
>
> 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. :(

No worries :)

Numan

>
> >
> > 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
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list