1. 22 Jun, 2020 2 commits
  2. 10 Jun, 2020 1 commit
  3. 07 Jun, 2020 1 commit
  4. 03 Jun, 2020 1 commit
  5. 27 May, 2020 1 commit
  6. 20 May, 2020 8 commits
    • Greg Kroah-Hartman's avatar
      Linux 4.19.124 · 1bab61d3
      Greg Kroah-Hartman authored
      1bab61d3
    • Sergei Trofimovich's avatar
      Makefile: disallow data races on gcc-10 as well · bf7d61e5
      Sergei Trofimovich authored
      commit b1112139 upstream.
      
      gcc-10 will rename --param=allow-store-data-races=0
      to -fno-allow-store-data-races.
      
      The flag change happened at https://gcc.gnu.org/PR92046
      
      .
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      Acked-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Cc: Thomas Backlund <tmb@mageia.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bf7d61e5
    • Linus Torvalds's avatar
      gcc-10: disable 'restrict' warning for now · 28b0bcee
      Linus Torvalds authored
      commit adc71920
      
       upstream.
      
      gcc-10 now warns about passing aliasing pointers to functions that take
      restricted pointers.
      
      That's actually a great warning, and if we ever start using 'restrict'
      in the kernel, it might be quite useful.  But right now we don't, and it
      turns out that the only thing this warns about is an idiom where we have
      declared a few functions to be "printf-like" (which seems to make gcc
      pick up the restricted pointer thing), and then we print to the same
      buffer that we also use as an input.
      
      And people do that as an odd concatenation pattern, with code like this:
      
          #define sysfs_show_gen_prop(buffer, fmt, ...) \
              snprintf(buffer, PAGE_SIZE, "%s"fmt, buffer, __VA_ARGS__)
      
      where we have 'buffer' as both the destination of the final result, and
      as the initial argument.
      
      Yes, it's a bit questionable.  And outside of the kernel, people do have
      standard declarations like
      
          int snprintf( char *restrict buffer, size_t bufsz,
                        const char *restrict format, ... );
      
      where that output buffer is marked as a restrict pointer that cannot
      alias with any other arguments.
      
      But in the context of the kernel, that 'use snprintf() to concatenate to
      the end result' does work, and the pattern shows up in multiple places.
      And we have not marked our own version of snprintf() as taking restrict
      pointers, so the warning is incorrect for now, and gcc picks it up on
      its own.
      
      If we do start using 'restrict' in the kernel (and it might be a good
      idea if people find places where it matters), we'll need to figure out
      how to avoid this issue for snprintf and friends.  But in the meantime,
      this warning is not useful.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      28b0bcee
    • Linus Torvalds's avatar
      gcc-10: disable 'stringop-overflow' warning for now · 8a5530c2
      Linus Torvalds authored
      commit 5a76021c
      
       upstream.
      
      This is the final array bounds warning removal for gcc-10 for now.
      
      Again, the warning is good, and we should re-enable all these warnings
      when we have converted all the legacy array declaration cases to
      flexible arrays. But in the meantime, it's just noise.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8a5530c2
    • Linus Torvalds's avatar
      gcc-10: disable 'array-bounds' warning for now · fa848762
      Linus Torvalds authored
      commit 44720996
      
       upstream.
      
      This is another fine warning, related to the 'zero-length-bounds' one,
      but hitting the same historical code in the kernel.
      
      Because C didn't historically support flexible array members, we have
      code that instead uses a one-sized array, the same way we have cases of
      zero-sized arrays.
      
      The one-sized arrays come from either not wanting to use the gcc
      zero-sized array extension, or from a slight convenience-feature, where
      particularly for strings, the size of the structure now includes the
      allocation for the final NUL character.
      
      So with a "char name[1];" at the end of a structure, you can do things
      like
      
             v = my_malloc(sizeof(struct vendor) + strlen(name));
      
      and avoid the "+1" for the terminator.
      
      Yes, the modern way to do that is with a flexible array, and using
      'offsetof()' instead of 'sizeof()', and adding the "+1" by hand.  That
      also technically gets the size "more correct" in that it avoids any
      alignment (and thus padding) issues, but this is another long-term
      cleanup thing that will not happen for 5.7.
      
      So disable the warning for now, even though it's potentially quite
      useful.  Having a slew of warnings that then hide more urgent new issues
      is not an improvement.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fa848762
    • Linus Torvalds's avatar
      gcc-10: disable 'zero-length-bounds' warning for now · 7f43fca7
      Linus Torvalds authored
      commit 5c45de21
      
       upstream.
      
      This is a fine warning, but we still have a number of zero-length arrays
      in the kernel that come from the traditional gcc extension.  Yes, they
      are getting converted to flexible arrays, but in the meantime the gcc-10
      warning about zero-length bounds is very verbose, and is hiding other
      issues.
      
      I missed one actual build failure because it was hidden among hundreds
      of lines of warning.  Thankfully I caught it on the second go before
      pushing things out, but it convinced me that I really need to disable
      the new warnings for now.
      
      We'll hopefully be all done with our conversion to flexible arrays in
      the not too distant future, and we can then re-enable this warning.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7f43fca7
    • Linus Torvalds's avatar
      Stop the ad-hoc games with -Wno-maybe-initialized · ec223222
      Linus Torvalds authored
      commit 78a5255f
      
       upstream.
      
      We have some rather random rules about when we accept the
      "maybe-initialized" warnings, and when we don't.
      
      For example, we consider it unreliable for gcc versions < 4.9, but also
      if -O3 is enabled, or if optimizing for size.  And then various kernel
      config options disabled it, because they know that they trigger that
      warning by confusing gcc sufficiently (ie PROFILE_ALL_BRANCHES).
      
      And now gcc-10 seems to be introducing a lot of those warnings too, so
      it falls under the same heading as 4.9 did.
      
      At the same time, we have a very straightforward way to _enable_ that
      warning when wanted: use "W=2" to enable more warnings.
      
      So stop playing these ad-hoc games, and just disable that warning by
      default, with the known and straight-forward "if you want to work on the
      extra compiler warnings, use W=123".
      
      Would it be great to have code that is always so obvious that it never
      confuses the compiler whether a variable is used initialized or not?
      Yes, it would.  In a perfect world, the compilers would be smarter, and
      our source code would be simpler.
      
      That's currently not the world we live in, though.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ec223222
    • Masahiro Yamada's avatar
      kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig · 9088569b
      Masahiro Yamada authored
      commit b303c6df upstream.
      
      Since -Wmaybe-uninitialized was introduced by GCC 4.7, we have patched
      various false positives:
      
       - commit e74fc973 ("Turn off -Wmaybe-uninitialized when building
         with -Os") turned off this option for -Os.
      
       - commit 815eb71e ("Kbuild: disable 'maybe-uninitialized' warning
         for CONFIG_PROFILE_ALL_BRANCHES") turned off this option for
         CONFIG_PROFILE_ALL_BRANCHES
      
       - commit a76bcf55 ("Kbuild: enable -Wmaybe-uninitialized warning
         for "make W=1"") turned off this option for GCC < 4.9
         Arnd provided more explanation in https://lkml.org/lkml/2017/3/14/903
      
      I think this looks better by shifting the logic from Makefile to Kconfig.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/350
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Tested-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9088569b
  7. 14 May, 2020 1 commit
  8. 10 May, 2020 1 commit
  9. 06 May, 2020 1 commit
  10. 02 May, 2020 1 commit
  11. 29 Apr, 2020 1 commit
  12. 23 Apr, 2020 1 commit
  13. 21 Apr, 2020 1 commit
  14. 17 Apr, 2020 1 commit
  15. 13 Apr, 2020 1 commit
  16. 02 Apr, 2020 1 commit
  17. 25 Mar, 2020 1 commit
  18. 20 Mar, 2020 1 commit
  19. 18 Mar, 2020 1 commit
  20. 16 Mar, 2020 1 commit
  21. 11 Mar, 2020 1 commit
  22. 05 Mar, 2020 1 commit
  23. 28 Feb, 2020 1 commit
  24. 24 Feb, 2020 1 commit
  25. 19 Feb, 2020 1 commit
  26. 14 Feb, 2020 1 commit
  27. 11 Feb, 2020 1 commit
  28. 05 Feb, 2020 1 commit
  29. 01 Feb, 2020 1 commit
  30. 29 Jan, 2020 1 commit
  31. 27 Jan, 2020 2 commits