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

Ilya Maximets i.maximets at ovn.org
Wed Oct 7 14:18:27 UTC 2020


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>
---

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.

 .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