1. Nov 11, 2019
    • Masahiro Yamada's avatar
      kbuild: rename any-prereq to newer-prereqs · eba19032
      Masahiro Yamada authored
      
      
      GNU Make manual says:
      
        $?
            The names of all the prerequisites that are newer than the target,
            with spaces between them.
      
      To reflect this, rename any-prereq to newer-prereqs, which is clearer
      and more intuitive.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      eba19032
    • Masahiro Yamada's avatar
      kbuild: drop $(wildcard $^) check in if_changed* for faster rebuild · 2d3b1b8f
      Masahiro Yamada authored
      The incremental build of Linux kernel is pretty slow when lots of
      objects are compiled. The rebuild of allmodconfig may take a few
      minutes even when none of the objects needs to be rebuilt.
      
      The time-consuming part in the incremental build is the evaluation of
      if_changed* macros since they are used in the recipes to compile C and
      assembly source files into objects.
      
      I notice the following code in if_changed* is expensive:
      
        $(filter-out $(PHONY) $(wildcard $^),$^)
      
      In the incremental build, every object has its .*.cmd file, which
      contains the auto-generated list of included headers. So, $^ are
      expanded into the long list of the source file + included headers,
      and $(wildcard $^) checks whether they exist.
      
      It may not be clear why this check exists there.
      
      Here is the record of my research.
      
      [1] The first code addition into Kbuild
      
      This code dates back to 2002. It is the pre-git era. So, I copy-pasted
      it from the historical git tree.
      
      | commit 4a6db0791528c220655b063cf13fefc8470dbfee (HEAD)
      | Author: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
      | Date:   Mon Jun 17 00:22:37 2002 -0500
      |
      |     kbuild: Handle removed headers
      |
      |     New and old way to handle dependencies would choke when a file
      |     #include'd by other files was removed, since the dependency on it was
      |     still recorded, but since it was gone, make has no idea what to do about
      |     it (and would complain with "No rule to make <file> ...")
      |
      |     We now add targets for all the previously included files, so make will
      |     just ignore them if they disappear.
      |
      | diff --git a/Rules.make b/Rules.make
      | index 6ef827d3df39..7db5301ea7db 100644
      | --- a/Rules.make
      | +++ b/Rules.make
      | @@ -446,7 +446,7 @@ if_changed = $(if $(strip $? \
      |  # execute the command and also postprocess generated .d dependencies
      |  # file
      |
      | -if_changed_dep = $(if $(strip $? \
      | +if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
      |                           $(filter-out $(cmd_$(1)),$(cmd_$@))\
      |                           $(filter-out $(cmd_$@),$(cmd_$(1)))),\
      |         @set -e; \
      | diff --git a/scripts/fixdep.c b/scripts/fixdep.c
      | index b5d7bee8efc7..db45bd1888c0 100644
      | --- a/scripts/fixdep.c
      | +++ b/scripts/fixdep.c
      | @@ -292,7 +292,7 @@ void parse_dep_file(void *map, size_t len)
      |                 exit(1);
      |         }
      |         memcpy(s, m, p-m); s[p-m] = 0;
      | -       printf("%s: \\\n", target);
      | +       printf("deps_%s := \\\n", target);
      |         m = p+1;
      |
      |         clear_config();
      | @@ -314,7 +314,8 @@ void parse_dep_file(void *map, size_t len)
      |                 }
      |                 m = p + 1;
      |         }
      | -       printf("\n");
      | +       printf("\n%s: $(deps_%s)\n\n", target, target);
      | +       printf("$(deps_%s):\n", target);
      |  }
      |
      |  void print_deps(void)
      
      The "No rule to make <file> ..." error can be solved by passing -MP to
      the compiler, but I think the detection of header removal is a good
      feature. When a header is removed, all source files that previously
      included it should be re-compiled. This makes sure we has correctly
      got rid of #include directives of it.
      
      This is also related with the behavior of $?. The GNU Make manual says:
      
        $?
            The names of all the prerequisites that are newer than the target,
            with spaces between them.
      
      This does not explain whether a non-existent prerequisite is considered
      to be newer than the target.
      
      At this point of time, GNU Make 3.7x was used, where the $? did not
      include non-existent prerequisites. Therefore,
      
        $(filter-out FORCE $(wildcard $^),$^)
      
      was useful to detect the header removal, and to rebuild the related
      objects if it is the case.
      
      [2] Change of $? behavior
      
      Later, the behavior of $? was changed (fixed) to include prerequisites
      that did not exist.
      
      First, GNU Make commit 64e16d6c00a5 ("Various changes getting ready for
      the release of 3.81.") changed it, but in the release test of 3.81, it
      turned out to break the kernel build.
      
      See these:
      
       - http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html
       - https://savannah.gnu.org/bugs/?16002
       - https://savannah.gnu.org/bugs/?16051
      
      Then, GNU Make commit 6d8d9b74d9c5 ("Numerous updates to tests for
      issues found on Cygwin and Windows.") reverted it for the 3.81 release
      to give Linux kernel time to adjust to the new behavior.
      
      After the 3.81 release, GNU Make commit 7595f38f62af ("Fixed a number
      of documentation bugs, plus some build/install issues:") re-added it.
      
      [3] Adjustment to the new $? behavior on Kbuild side
      
      Meanwhile, the kernel build was changed by commit 4f193362 ("kbuild:
      change kbuild to not rely on incorrect GNU make behavior") to adjust to
      the new $? behavior.
      
      [4] GNU Make 3.82 released in 2010
      
      GNU Make 3.82 was the first release that integrated the correct $?
      behavior. At this point, Kbuild dealt with GNU Make versions with
      different $? behaviors.
      
       3.81 or older:
          $? does not contain any non-existent prerequisite.
          $(filter-out $(PHONY) $(wildcard $^),$^) was useful to detect
          removed include headers.
      
       3.82 or newer:
          $? contains non-existent prerequisites. When a header is removed,
          it appears in $?. $(filter-out $(PHONY) $(wildcard $^),$^) became
          a redundant check.
      
      With the correct $? behavior, we could have dropped the expensive
      check for 3.82 or later, but we did not. (Maybe nobody noticed this
      optimization.)
      
      [5] The .SECONDARY special target trips up $?
      
      Some time later, I noticed $? did not work as expected under some
      circumstances. As above, $? should contain non-existent prerequisites,
      but the ones specified as SECONDARY do not appear in $?.
      
      I asked this in GNU Make ML, and it seems a bug:
      
        https://lists.gnu.org/archive/html/bug-make/2019-01/msg00001.html
      
      Since commit 8e9b61b2 ("kbuild: move .SECONDARY special target to
      Kbuild.include"), all files, including headers listed in .*.cmd files,
      are treated as secondary.
      
      So, we are back into the incorrect $? behavior.
      
      If we Kbuild want to react to the header removal, we need to keep
      $(filter-out $(PHONY) $(wildcard $^),$^) but this makes the rebuild
      so slow.
      
      [Summary]
      
       - I believe noticing the header removal and recompiling related objects
         is a nice feature for the build system.
      
       - If $? worked correctly, $(filter-out $(PHONY),$?) would be enough
         to detect the header removal.
      
       - Currently, $? does not work correctly when used with .SECONDARY,
         and Kbuild is hit by this bug.
      
       - I filed a bug report for this, but not fixed yet as of writing.
      
       - Currently, the header removal is detected by the following expensive
         code:
      
          $(filter-out $(PHONY) $(wildcard $^),$^)
      
       - I do not want to revert commit 8e9b61b2
      
       ("kbuild: move
         .SECONDARY special target to Kbuild.include"). Specifying
         .SECONDARY globally is clean, and it matches to the Kbuild policy.
      
      This commit proactively removes the expensive check since it makes the
      incremental build faster. A downside is Kbuild will no longer be able
      to notice the header removal.
      
      You can confirm it by the full-build followed by a header removal, and
      then re-build.
      
        $ make defconfig all
          [ full build ]
        $ rm include/linux/device.h
        $ make
          CALL    scripts/checksyscalls.sh
          CALL    scripts/atomic/check-atomics.sh
          DESCEND  objtool
          CHK     include/generated/compile.h
        Kernel: arch/x86/boot/bzImage is ready  (#11)
          Building modules, stage 2.
          MODPOST 12 modules
      
      Previously, Kbuild noticed a missing header and emits a build error.
      Now, Kbuild is fine with it. This is an unusual corner-case, not a big
      deal. Once the $? bug is fixed in GNU Make, everything will work fine.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      2d3b1b8f
    • Masahiro Yamada's avatar
      kbuild: update compile-test header list for v5.5-rc1 · d2a99dbd
      Masahiro Yamada authored
      Since commit 707816c8
      
       ("netfilter: remove deprecation warnings from
      uapi headers."), you can compile linux/netfilter_ipv4/ipt_LOG.h and
      linux/netfilter_ipv6/ip6t_LOG.h without warnings.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      d2a99dbd
    • Masahiro Yamada's avatar
      modpost: remove unneeded local variable in contains_namespace() · 76b54cf0
      Masahiro Yamada authored
      
      
      The local variable, ns_entry, is unneeded.
      
      While I was here, I also cleaned up the comparison with NULL or 0.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: default avatarMatthias Maennich <maennich@google.com>
      76b54cf0
    • Masahiro Yamada's avatar
      scripts/nsdeps: support nsdeps for external module builds · bc35d4bd
      Masahiro Yamada authored
      
      
      scripts/nsdeps is written to take care of only in-tree modules.
      Perhaps, this is not a bug, but just a design. At least,
      Documentation/core-api/symbol-namespaces.rst focuses on in-tree modules.
      
      Having said that, some people already tried nsdeps for external modules.
      So, it would be nice to support it.
      
      Reported-by: default avatarSteve French <smfrench@gmail.com>
      Reported-by: default avatarJessica Yu <jeyu@kernel.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarJessica Yu <jeyu@kernel.org>
      Acked-by: default avatarJessica Yu <jeyu@kernel.org>
      Reviewed-by: default avatarMatthias Maennich <maennich@google.com>
      Tested-by: default avatarMatthias Maennich <maennich@google.com>
      bc35d4bd
    • Masahiro Yamada's avatar
      modpost: dump missing namespaces into a single modules.nsdeps file · bbc55bde
      Masahiro Yamada authored
      The modpost, with the -d option given, generates per-module .ns_deps
      files.
      
      Kbuild generates per-module .mod files to carry module information.
      This is convenient because Make handles multiple jobs in parallel
      when the -j option is given.
      
      On the other hand, the modpost always runs as a single thread.
      I do not see a strong reason to produce separate .ns_deps files.
      
      This commit changes the modpost to generate just one file,
      modules.nsdeps, each line of which has the following format:
      
        <module_name>: <list of missing namespaces>
      
      Please note it contains *missing* namespaces instead of required ones.
      So, modules.nsdeps is empty if the namespace dependency is all good.
      
      This will work more efficiently because spatch will no longer process
      already imported namespaces. I removed the '(if needed)' from the
      nsdeps log since spatch is invoked only when needed.
      
      This also solves the stale .ns_deps problem reported by Jessica Yu:
      
        https://lkml.org/lkml/2019/10/28/467
      
      
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarJessica Yu <jeyu@kernel.org>
      Acked-by: default avatarJessica Yu <jeyu@kernel.org>
      Reviewed-by: default avatarMatthias Maennich <maennich@google.com>
      Tested-by: default avatarMatthias Maennich <maennich@google.com>
      bbc55bde
    • Masahiro Yamada's avatar
      modpost: free ns_deps_buf.p after writing ns_deps files · 0241ea8c
      Masahiro Yamada authored
      
      
      buf_write() allocates memory. Free it.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      0241ea8c
    • Masahiro Yamada's avatar
      modpost: do not invoke extra modpost for nsdeps · bff9c62b
      Masahiro Yamada authored
      
      
      'make nsdeps' invokes the modpost three times at most; before linking
      vmlinux, before building modules, and finally for generating .ns_deps
      files. Running the modpost again and again is not efficient.
      
      The last two can be unified. When the -d option is given, the modpost
      still does the usual job, and in addition, generates .ns_deps files.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarMatthias Maennich <maennich@google.com>
      Reviewed-by: default avatarMatthias Maennich <maennich@google.com>
      bff9c62b
    • Bhaskar Chowdhury's avatar
    • Alyssa Ross's avatar
      kconfig: be more helpful if pkg-config is missing · 46b2afa6
      Alyssa Ross authored
      
      
      If ncurses is installed, but at a non-default location, the previous
      error message was not helpful in resolving the situation.  Now it will
      suggest that pkg-config might need to be installed in addition to
      ncurses.
      
      Signed-off-by: default avatarAlyssa Ross <hi@alyssa.is>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      46b2afa6
    • Laura Abbott's avatar
      kconfig: Add option to get the full help text with listnewconfig · 5d8b42aa
      Laura Abbott authored
      
      
      make listnewconfig will list the individual options that need to be set.
      This is useful but there's no easy way to get the help text associated
      with the options at the same time. Introduce a new targe
      'make helpnewconfig' which lists the full help text of all the
      new options as well. This makes it easier to automatically generate
      changes that are easy for humans to review. This command also adds
      markers between each option for easier parsing.
      
      Signed-off-by: default avatarLaura Abbott <labbott@redhat.com>
      Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      5d8b42aa
    • Matteo Croce's avatar
      kbuild: Add make dir-pkg build option · af7db99a
      Matteo Croce authored
      
      
      Add a 'dir-pkg' target which just creates the same directory structures
      as in tar-pkg, but doesn't package anything.
      Useful when the user wants to copy the kernel tree on a machine using
      ssh, rsync or whatever.
      
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      af7db99a
    • Geert Uytterhoeven's avatar
      kbuild: Extend defconfig field size from 24 to 27 · 4234448b
      Geert Uytterhoeven authored
      
      
      There are 6 defconfigs with names longer than 24 characters, breaking
      alignment in "make help".
      
      The "winner" is "ecovec24-romimage_defconfig", counting in at 27
      characters.
      
      Extend the defconfig field size to 27 to restore alignment.
      Don't use a larger value, to not encourage people to create even longer
      defconfig names.
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      4234448b
    • Geert Uytterhoeven's avatar
      kbuild: Wrap long "make help" text lines · a64c0440
      Geert Uytterhoeven authored
      
      
      Some "make help" text lines extend beyond 80 characters.
      Wrap them before an opening parenthesis, or before 80 characters.
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      a64c0440
    • Bhaskar Chowdhury's avatar
      scripts: setlocalversion: replace backquote to dollar parenthesis · 3c96bdd0
      Bhaskar Chowdhury authored
      
      
      This patch replaces backquote to dollar parenthesis syntax for better
      readability.
      
      Signed-off-by: default avatarBhaskar Chowdhury <unixbhaskar@gmail.com>
      Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: default avatarNico Schottelius <nico-linuxsetlocalversion@schottelius.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      3c96bdd0
    • Masahiro Yamada's avatar
      asm-generic/export.h: remove unneeded __kcrctab_* symbols · 03034dbd
      Masahiro Yamada authored
      
      
      EXPORT_SYMBOL from assembly code produces an unused symbol __kcrctab_*.
      
      kcrctab is used as a section name (prefixed with three underscores),
      but never used as a symbol.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      03034dbd
    • Masahiro Yamada's avatar
      asm-generic/export.h: make __ksymtab_* local symbols · a31ec048
      Masahiro Yamada authored
      
      
      For EXPORT_SYMBOL from C files, <linux/export.h> defines __ksymtab_*
      as local symbols.
      
      For EXPORT_SYMBOL from assembly, in contrast, <asm-generic/export.h>
      produces globally-visible __ksymtab_* symbols due to this .globl
      directive.
      
      I do not know why this must be global. It still works without this.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      a31ec048
    • Masahiro Yamada's avatar
      kbuild: make single target builds much faster · 2dffd23f
      Masahiro Yamada authored
      Since commit 394053f4
      
       ("kbuild: make single targets work more
      correctly"), building single targets is really slow.
      
      Speed it up by not descending into unrelated directories.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      2dffd23f
    • Masahiro Yamada's avatar
      kbuild: reduce KBUILD_SINGLE_TARGETS as descending into subdirectories · 20312629
      Masahiro Yamada authored
      
      
      KBUILD_SINGLE_TARGETS does not need to contain all the targets.
      Change it to keep track the targets only from the current directory
      and its subdirectories.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      20312629
    • Masahiro Yamada's avatar
      kbuild: remove unneeded variable, single-all · 35e046a2
      Masahiro Yamada authored
      
      
      When single-build is set, everything in $(MAKECMDGOALS) is a single
      target. You can use $(MAKECMDGOALS) to list out the single targets.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      35e046a2
    • Masahiro Yamada's avatar
      kheaders: explain why include/config/autoconf.h is excluded from md5sum · f276031b
      Masahiro Yamada authored
      
      
      This comment block explains why include/generated/compile.h is omitted,
      but nothing about include/generated/autoconf.h, which might be more
      difficult to understand. Add more comments.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      f276031b
    • Masahiro Yamada's avatar
      kheaders: remove the last bashism to allow sh to run it · 1463f74f
      Masahiro Yamada authored
      
      
      'pushd' ... 'popd' is the last bash-specific code in this script.
      One way to avoid it is to run the code in a sub-shell.
      
      With that addressed, you can run this script with sh.
      
      I replaced $(BASH) with $(CONFIG_SHELL), and I changed the hashbang
      to #!/bin/sh.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1463f74f
    • Masahiro Yamada's avatar
      kheaders: optimize header copy for in-tree builds · ea79e516
      Masahiro Yamada authored
      
      
      This script copies headers by the cpio command twice; first from
      srctree, and then from objtree. However, when we building in-tree,
      we know the srctree and the objtree are the same. That is, all the
      headers copied by the first cpio are overwritten by the second one.
      
      Skip the first cpio when we are building in-tree.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      ea79e516
    • Masahiro Yamada's avatar
      kheaders: optimize md5sum calculation for in-tree builds · 0e11773e
      Masahiro Yamada authored
      
      
      This script computes md5sum of headers in srctree and in objtree.
      However, when we are building in-tree, we know the srctree and the
      objtree are the same. That is, we end up with the same computation
      twice. In fact, the first two lines of kernel/kheaders.md5 are always
      the same for in-tree builds.
      
      Unify the two md5sum calculations.
      
      For in-tree builds ($building_out_of_srctree is empty), we check
      only two directories, "include", and "arch/$SRCARCH/include".
      
      For out-of-tree builds ($building_out_of_srctree is 1), we check
      4 directories, "$srctree/include", "$srctree/arch/$SRCARCH/include",
      "include", and "arch/$SRCARCH/include" since we know they are all
      different.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      0e11773e
    • Masahiro Yamada's avatar
      kheaders: remove unneeded 'cat' command piped to 'head' / 'tail' · 9a066357
      Masahiro Yamada authored
      
      
      The 'head' and 'tail' commands can take a file path directly.
      So, you do not need to run 'cat'.
      
        cat kernel/kheaders.md5 | head -1
      
      ... is equivalent to:
      
        head -1 kernel/kheaders.md5
      
      and the latter saves forking one process.
      
      While I was here, I replaced 'head -1' with 'head -n 1'.
      
      I also replaced '==' with '=' since we do not have a good reason to
      use the bashism.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      9a066357
    • Masahiro Yamada's avatar
      kbuild: do not read $(KBUILD_EXTMOD)/Module.symvers · 39808e45
      Masahiro Yamada authored
      Since commit 040fcc81 ("kbuild: improved modversioning support for
      external modules"), the external module build reads Module.symvers in
      the directory of the module itself, then dumps symbols back into it.
      It accumulates stale symbols in the file when you build an external
      module incrementally.
      
      The idea behind it was, as the commit log explained, you can copy
      Modules.symvers from one module to another when you need to pass symbol
      information between two modules. However, the manual copy of the file
      sounds questionable to me, and containing stale symbols is a downside.
      
      Some time later, commit 0d96fb20
      
       ("kbuild: Add new Kbuild variable
      KBUILD_EXTRA_SYMBOLS") introduced a saner approach.
      
      So, this commit removes the former one. Going forward, the external
      module build dumps symbols into Module.symvers to be carried via
      KBUILD_EXTRA_SYMBOLS, but never reads it automatically.
      
      With the -I option removed, there is no one to set the external_module
      flag unless KBUILD_EXTRA_SYMBOLS is passed. Now the -i option does it
      instead.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      39808e45
    • Masahiro Yamada's avatar
      modpost: do not parse vmlinux for external module builds · 1747269a
      Masahiro Yamada authored
      
      
      When building external modules, $(objtree)/Module.symvers is scanned
      for symbol information of vmlinux and in-tree modules.
      
      Additionally, vmlinux is parsed if it exists in $(objtree)/.
      This is totally redundant since all the necessary information is
      contained in $(objtree)/Module.symvers.
      
      Do not parse vmlinux at all for external module builds. This makes
      sense because vmlinux is deleted by 'make clean'.
      
      'make clean' leaves all the build artifacts for building external
      modules. vmlinux is unneeded for that.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1747269a
    • Masahiro Yamada's avatar
      kbuild: update comments in scripts/Makefile.modpost · fab546e6
      Masahiro Yamada authored
      The comment line "When building external modules ..." explains
      the same thing as "Include the module's Makefile ..." a few lines
      below.
      
      The comment "they may be used when building the .mod.c file" is no
      longer true; .mod.c file is compiled in scripts/Makefile.modfinal
      since commit 9b9a3f20
      
       ("kbuild: split final module linking out
      into Makefile.modfinal"). I still keep the code in case $(obj) or
      $(src) is used in the external module Makefile.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      fab546e6
    • Masahiro Yamada's avatar
      kconfig: split util.c out of parser.y · 521b29b6
      Masahiro Yamada authored
      util.c exists both in scripts/kconfig/ and scripts/kconfig/lxdialog.
      
      Prior to commit 54b8ae66
      
       ("kbuild: change *FLAGS_<basetarget>.o
      to take the path relative to $(obj)"), Kbuild could not pass different
      flags to source files with the same basename. Now that this issue
      was solved, you can split util.c out of parser.y and compile them
      independently of each other.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      521b29b6
    • Masahiro Yamada's avatar
      video/logo: move pnmtologo tool to drivers/video/logo/ from scripts/ · 78a20a01
      Masahiro Yamada authored
      
      
      This tool is only used by drivers/video/logo/Makefile. No reason to
      keep it in scripts/.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      78a20a01
    • Masahiro Yamada's avatar
      video/logo: simplify cmd_logo · e3c639b8
      Masahiro Yamada authored
      
      
      Shorten the code. It still works in the same way.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      e3c639b8
    • Masahiro Yamada's avatar
      ia64: remove unneeded uapi asm-generic wrappers · c25f867d
      Masahiro Yamada authored
      
      
      These are listed in include/uapi/asm-generic/Kbuild, so Kbuild will
      automatically generate them.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      c25f867d
    • Masahiro Yamada's avatar
      hexagon: remove asm/bitsperlong.h · 872e24d5
      Masahiro Yamada authored
      
      
      Remove hexagon-specific bitsperlong.h so that it falls back to
      include/uapi/asm-generic/bitsperlong.h
      
      Kbuild will automatically create a wrapper of it.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      872e24d5
    • Linus Torvalds's avatar
      Linux 5.4-rc7 · 31f4f5b4
      Linus Torvalds authored
      31f4f5b4
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 44866956
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A set of fixes that have trickled in over the last couple of weeks:
      
         - MAINTAINER update for Cavium/Marvell ThunderX2
      
         - stm32 tweaks to pinmux for Joystick/Camera, and RAM allocation for
           CAN interfaces
      
         - i.MX fixes for voltage regulator GPIO mappings, fixes voltage
           scaling issues
      
         - More i.MX fixes for various issues on i.MX eval boards: interrupt
           storm due to u-boot leaving pins in new states, fixing power button
           config, a couple of compatible-string corrections.
      
         - Powerdown and Suspend/Resume fixes for Allwinner A83-based tablets
      
         - A few documentation tweaks and a fix of a memory leak in the reset
           subsystem"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        MAINTAINERS: update Cavium ThunderX2 maintainers
        ARM: dts: stm32: change joystick pinctrl definition on stm32mp157c-ev1
        ARM: dts: stm32: remove OV5640 pinctrl definition on stm32mp157c-ev1
        ARM: dts: stm32: Fix CAN RAM mapping on stm32mp157c
        ARM: dts: stm32: relax qspi pins slew-rate for stm32mp157
        arm64: dts: zii-ultra: fix ARM regulator GPIO handle
        ARM: sunxi: Fix CPU powerdown on A83T
        ARM: dts: sun8i-a83t-tbs-a711: Fix WiFi resume from suspend
        arm64: dts: imx8mn: fix compatible string for sdma
        arm64: dts: imx8mm: fix compatible string for sdma
        reset: fix reset_control_ops kerneldoc comment
        ARM: dts: imx6-logicpd: Re-enable SNVS power key
        soc: imx: gpc: fix initialiser format
        ARM: dts: imx6qdl-sabreauto: Fix storm of accelerometer interrupts
        arm64: dts: ls1028a: fix a compatible issue
        reset: fix reset_control_get_exclusive kerneldoc comment
        reset: fix reset_control_lookup kerneldoc comment
        reset: fix of_reset_control_get_count kerneldoc comment
        reset: fix of_reset_simple_xlate kerneldoc comment
        reset: Fix memory leak in reset_control_array_put()
      44866956
    • Linus Torvalds's avatar
      Merge tag 'staging-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · dd892625
      Linus Torvalds authored
      Pull IIO fixes and staging driver from Greg KH:
       "Here is a mix of a number of IIO driver fixes for 5.4-rc7, and a whole
        new staging driver.
      
        The IIO fixes resolve some reported issues, all are tiny.
      
        The staging driver addition is the vboxsf filesystem, which is the
        VirtualBox guest shared folder code. Hans has been trying to get
        filesystem reviewers to review the code for many months now, and
        Christoph finally said to just merge it in staging now as it is
        stand-alone and the filesystem people can review it easier over time
        that way.
      
        I know it's late for this big of an addition, but it is stand-alone.
      
        The code has been in linux-next for a while, long enough to pick up a
        few tiny fixes for it already so people are looking at it.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'staging-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: Fix error return code in vboxsf_fill_super()
        staging: vboxsf: fix dereference of pointer dentry before it is null checked
        staging: vboxsf: Remove unused including <linux/version.h>
        staging: Add VirtualBox guest shared folder (vboxsf) support
        iio: adc: stm32-adc: fix stopping dma
        iio: imu: inv_mpu6050: fix no data on MPU6050
        iio: srf04: fix wrong limitation in distance measuring
        iio: imu: adis16480: make sure provided frequency is positive
      dd892625
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 3de2a3e9
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are a number of late-arrival driver fixes for issues reported for
        some char/misc drivers for 5.4-rc7
      
        These all come from the different subsystem/driver maintainers as
        things that they had reports for and wanted to see fixed.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        intel_th: pci: Add Jasper Lake PCH support
        intel_th: pci: Add Comet Lake PCH support
        intel_th: msu: Fix possible memory leak in mode_store()
        intel_th: msu: Fix overflow in shift of an unsigned int
        intel_th: msu: Fix missing allocation failure check on a kstrndup
        intel_th: msu: Fix an uninitialized mutex
        intel_th: gth: Fix the window switching sequence
        soundwire: slave: fix scanf format
        soundwire: intel: fix intel_register_dai PDI offsets and numbers
        interconnect: Add locking in icc_set_tag()
        interconnect: qcom: Fix icc_onecell_data allocation
        soundwire: depend on ACPI || OF
        soundwire: depend on ACPI
        thunderbolt: Drop unnecessary read when writing LC command in Ice Lake
        thunderbolt: Fix lockdep circular locking depedency warning
        thunderbolt: Read DP IN adapter first two dwords in one go
      3de2a3e9
    • Linus Torvalds's avatar
      Merge tag 'configfs-for-5.4-2' of git://git.infradead.org/users/hch/configfs · a5871fcb
      Linus Torvalds authored
      Pull configfs regression fix from Christoph Hellwig:
       "Fix a regression from this merge window in the configfs symlink
        handling (Honggang Li)"
      
      * tag 'configfs-for-5.4-2' of git://git.infradead.org/users/hch/configfs:
        configfs: calculate the depth of parent item
      a5871fcb
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9805a683
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A small set of fixes for x86:
      
         - Make the tsc=reliable/nowatchdog command line parameter work again.
           It was broken with the introduction of the early TSC clocksource.
      
         - Prevent the evaluation of exception stacks before they are set up.
           This causes a crash in dumpstack because the stack walk termination
           gets screwed up.
      
         - Prevent a NULL pointer dereference in the rescource control file
           system.
      
         - Avoid bogus warnings about APIC id mismatch related to the LDR
           which can happen when the LDR is not in use and therefore not
           initialized. Only evaluate that when the APIC is in logical
           destination mode"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc: Respect tsc command line paraemeter for clocksource_tsc_early
        x86/dumpstack/64: Don't evaluate exception stacks before setup
        x86/apic/32: Avoid bogus LDR warnings
        x86/resctrl: Prevent NULL pointer dereference when reading mondata
      9805a683
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 621084cd
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "A small set of fixes for timekeepoing and clocksource drivers:
      
         - VDSO data was updated conditional on the availability of a VDSO
           capable clocksource. This causes the VDSO functions which do not
           depend on a VDSO capable clocksource to operate on stale data.
           Always update unconditionally.
      
         - Prevent a double free in the mediatek driver
      
         - Use the proper helper in the sh_mtu2 driver so it won't attempt to
           initialize non-existing interrupts"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping/vsyscall: Update VDSO data unconditionally
        clocksource/drivers/sh_mtu2: Do not loop using platform_get_irq_by_name()
        clocksource/drivers/mediatek: Fix error handling
      621084cd