1. 01 2月, 2021 1 次提交
  2. 25 1月, 2021 1 次提交
  3. 18 1月, 2021 1 次提交
  4. 11 1月, 2021 1 次提交
  5. 04 1月, 2021 1 次提交
  6. 28 12月, 2020 1 次提交
  7. 21 12月, 2020 1 次提交
  8. 14 12月, 2020 1 次提交
  9. 07 12月, 2020 1 次提交
  10. 01 12月, 2020 1 次提交
  11. 30 11月, 2020 1 次提交
  12. 25 11月, 2020 2 次提交
  13. 23 11月, 2020 1 次提交
  14. 16 11月, 2020 1 次提交
  15. 09 11月, 2020 1 次提交
  16. 02 11月, 2020 2 次提交
  17. 26 10月, 2020 1 次提交
  18. 20 10月, 2020 1 次提交
  19. 14 10月, 2020 1 次提交
  20. 12 10月, 2020 3 次提交
    • O
      kbuild: enforce -Werror=return-type · 172aad81
      Olaf Hering 提交于
      Catch errors which at least gcc tolerates by default:
       warning: 'return' with no value, in function returning non-void [-Wreturn-type]
      Signed-off-by: NOlaf Hering <olaf@aepfle.de>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      172aad81
    • L
      Linux 5.9 · bbf5c979
      Linus Torvalds 提交于
      bbf5c979
    • J
      scripts: remove namespace.pl · 7dfbea4c
      Jacob Keller 提交于
      namespace.pl is intended to help locate symbols which are defined but
      are not used externally. The goal is to avoid bloat of the namespace in
      the resulting kernel image.
      
      The script relies on object data, and only finds unused symbols for the
      configuration used to generate that object data. This results in a lot
      of false positive warnings such as symbols only used by a single
      architecture, or symbols which are used externally only under certain
      configurations.
      
      Running namespace.pl using allyesconfig, allmodconfig, and
      x86_64_defconfig yields the following results:
      
      * allmodconfig
        * 11122 unique symbol names with no external reference
        * 1194 symbols listed as multiply defined
        * 214 symbols it can't resolve
      * allyesconfig
        * 10997 unique symbol names with no external reference
        * 1194 symbols listed as multiply defined
        * 214 symbols it can't resolve
      * x86_64_defconfig
        * 5757 unique symbol names with no external reference
        * 528 symbols listed as multiply defined
        * 154 symbols it can't resolve
      
      The script also has no way to easily limit the scope of the checks to
      a given subset of the kernel, such as only checking for symbols defined
      within a module or subsystem.
      
      Discussion on public mailing lists seems to indicate that many view the
      tool output as suspect or not very useful (see discussions at [1] and
      [2] for further context).
      
      As described by Masahiro Yamada at [2], namespace.pl provides 3 types of
      checks: listing multiply defined symbols, resolving external symbols,
      and warnings about symbols with no reference.
      
      The first category of issues is easily caught by the linker as any set
      of multiply defined symbols should fail to link. The second category of
      issues is also caught by linking, as undefined symbols would cause
      issues. Even with modules, these types of issues where a module relies
      on an external symbol are caught by modpost.
      
      The remaining category of issues reported is the list of symbols with no
      external reference, and is the primary motivation of this script.
      However, it ought to be clear from the above examples that the output is
      difficult to sort through. Even allyesconfig has ~10000 entries.
      
      The current submit-checklist indicates that patches ought to go through
      namespacecheck and fix any new issues arising. But that itself presents
      problems. As described at [1], many cases of reports are due to
      configuration where a function is used externally by some configuration
      settings. Prominent maintainers appear to dislike changes modify code
      such that symbols become static based on CONFIG_* flags ([3], and [4])
      
      One possible solution is to adjust the advice and indicate that we only
      care about the output of namespacecheck on allyesconfig or allmodconfig
      builds...
      
      However, given the discussion at [2], I suspect that few people are
      actively using this tool. It doesn't have a maintainer in the
      MAINTAINERS flie, and it produces so many warnings for unused symbols
      that it is difficult to use effectively. Thus, I propose we simply
      remove it.
      
      [1] https://lore.kernel.org/netdev/20200708164812.384ae8ea@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com/
      [2] https://lore.kernel.org/lkml/20190129204319.15238-1-jacob.e.keller@intel.com/
      [3] https://lore.kernel.org/netdev/20190828.154744.2058157956381129672.davem@davemloft.net/
      [4] https://lore.kernel.org/netdev/20190827210928.576c5fef@cakuba.netronome.com/Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Acked-by: NJakub Kicinski <kuba@kernel.org>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      7dfbea4c
  21. 09 10月, 2020 1 次提交
  22. 05 10月, 2020 1 次提交
  23. 28 9月, 2020 1 次提交
  24. 24 9月, 2020 7 次提交
  25. 21 9月, 2020 1 次提交
  26. 14 9月, 2020 1 次提交
  27. 07 9月, 2020 1 次提交
  28. 03 9月, 2020 1 次提交
    • J
      Revert "kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled" · 318af7b8
      Josh Poimboeuf 提交于
      Use of the new -flive-patching flag was introduced with the following
      commit:
      
        43bd3a95 ("kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled")
      
      This flag has several drawbacks:
      
      - It disables some optimizations, so it can have a negative effect on
        performance.
      
      - According to the GCC documentation it's not compatible with LTO, which
        will become a compatibility issue as LTO support gets upstreamed in
        the kernel.
      
      - It was intended to be used for source-based patch generation tooling,
        as opposed to binary-based patch generation tooling (e.g.,
        kpatch-build).  It probably should have at least been behind a
        separate config option so as not to negatively affect other livepatch
        users.
      
      - Clang doesn't have the flag, so as far as I can tell, this method of
        generating patches is incompatible with Clang, which like LTO is
        becoming more mainstream.
      
      - It breaks GCC's implicit noreturn detection for local functions.  This
        is the cause of several "unreachable instruction" objtool warnings.
      
      - The broken noreturn detection is an obvious GCC regression, but we
        haven't yet gotten GCC developers to acknowledge that, which doesn't
        inspire confidence in their willingness to keep the feature working as
        optimizations are added or changed going forward.
      
      - While there *is* a distro which relies on this flag for their distro
        livepatch module builds, there's not a publicly documented way to
        create safe livepatch modules with it.  Its use seems to be based on
        tribal knowledge.  It serves no benefit to those who don't know how to
        use it.
      
        (In fact, I believe the current livepatch documentation and samples
        are misleading and dangerous, and should be corrected.  Or at least
        amended with a disclaimer.  But I don't feel qualified to make such
        changes.)
      
      Also, we have an idea for using objtool to detect function changes,
      which could potentially obsolete the need for this flag anyway.
      
      At this point the flag has no benefits for upstream which would
      counteract the above drawbacks.  Revert it until it becomes more ready.
      
      This reverts commit 43bd3a95.
      
      Fixes: 43bd3a95 ("kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled")
      Reported-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Acked-by: NMiroslav Benes <mbenes@suse.cz>
      Signed-off-by: NPetr Mladek <pmladek@suse.com>
      Link: https://lore.kernel.org/r/696262e997359666afa053fe7d1a9fb2bb373964.1595010490.git.jpoimboe@redhat.com
      318af7b8
  29. 31 8月, 2020 1 次提交
  30. 26 8月, 2020 1 次提交