• Andrey Ryabinin's avatar
    net/mac80211/debugfs.c: prevent build failure with CONFIG_UBSAN=y · 68920c97
    Andrey Ryabinin authored
    With upcoming CONFIG_UBSAN the following BUILD_BUG_ON in
    net/mac80211/debugfs.c starts to trigger:
    
      BUILD_BUG_ON(hw_flag_names[NUM_IEEE80211_HW_FLAGS] != (void *)0x1);
    
    It seems, that compiler instrumentation causes some code
    deoptimizations.  Because of that GCC is not being able to resolve
    condition in BUILD_BUG_ON() at compile time.
    
    We could make size of hw_flag_names array unspecified and replace the
    condition in BUILD_BUG_ON() with following:
    
      ARRAY_SIZE(hw_flag_names) != NUM_IEEE80211_HW_FLAGS
    
    That will have the same effect as before (adding new flag without
    updating array will trigger build failure) except it doesn't fail with
    CONFIG_UBSAN.  As a bonus this patch slightly decreases size of
    hw_flag_names array.
    Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Johannes Berg <johannes@sipsolutions.net>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    68920c97
debugfs.c 8.04 KB