x86/mpx/selftests: Fix up weird arrays
authorDave Hansen <dave.hansen@linux.intel.com>
Sat, 11 Nov 2017 00:12:29 +0000 (16:12 -0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 21 Nov 2017 08:34:52 +0000 (09:34 +0100)
The MPX hardware data structurse are defined in a weird way: they define
their size in bytes and then union that with the type with which we want
to access them.

Yes, this is weird, but it does work.  But, new GCC's complain that we
are accessing the array out of bounds.  Just make it a zero-sized array
so gcc will stop complaining.  There was not really a bug here.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20171111001229.58A7933D@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
tools/testing/selftests/x86/mpx-hw.h

index 3f0093911f03d5e474d245c4b4e37064643e917b..d1b61ab870f8d9f4d78412b48322f5f58bd5cd76 100644 (file)
 struct mpx_bd_entry {
        union {
                char x[MPX_BOUNDS_DIR_ENTRY_SIZE_BYTES];
-               void *contents[1];
+               void *contents[0];
        };
 } __attribute__((packed));
 
 struct mpx_bt_entry {
        union {
                char x[MPX_BOUNDS_TABLE_ENTRY_SIZE_BYTES];
-               unsigned long contents[1];
+               unsigned long contents[0];
        };
 } __attribute__((packed));