1. 01 4月, 2020 1 次提交
  2. 30 3月, 2020 1 次提交
  3. 29 3月, 2020 8 次提交
  4. 25 3月, 2020 3 次提交
  5. 19 3月, 2020 1 次提交
  6. 13 3月, 2020 8 次提交
    • M
      kconfig: make 'imply' obey the direct dependency · 3a9dd3ec
      Masahiro Yamada 提交于
      The 'imply' statement may create unmet direct dependency when the
      implied symbol depends on m.
      
      [Test Code]
      
        config FOO
                tristate "foo"
                imply BAZ
      
        config BAZ
                tristate "baz"
                depends on BAR
      
        config BAR
                def_tristate m
      
        config MODULES
                def_bool y
                option modules
      
      If you set FOO=y, BAZ is also promoted to y, which results in the
      following .config file:
      
        CONFIG_FOO=y
        CONFIG_BAZ=y
        CONFIG_BAR=m
        CONFIG_MODULES=y
      
      This does not meet the dependency 'BAZ depends on BAR'.
      
      Unlike 'select', what is worse, Kconfig never shows the
      'WARNING: unmet direct dependencies detected for ...' for this case.
      
      Because 'imply' is considered to be weaker than 'depends on', Kconfig
      should take the direct dependency into account.
      
      For clarification, describe this case in kconfig-language.rst too.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: NNicolas Pitre <nico@fluxnic.net>
      Tested-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      3a9dd3ec
    • M
      kconfig: allow symbols implied by y to become m · def2fbff
      Masahiro Yamada 提交于
      The 'imply' keyword restricts a symbol to y or n, excluding m
      when it is implied by y. This is the original behavior since
      commit 237e3ad0 ("Kconfig: Introduce the "imply" keyword").
      
      However, the author of this feature, Nicolas Pitre, stated that
      the 'imply' keyword should not impose any restrictions.
      (https://lkml.org/lkml/2020/2/19/714)
      
      I agree, and want to get rid of this tricky behavior.
      Suggested-by: NNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: NNicolas Pitre <nico@fluxnic.net>
      def2fbff
    • M
      net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report() · 1cd9b3ab
      Masahiro Yamada 提交于
      In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
      
      The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
      from being 'm' when NET_DEVLINK=y.
      
      With the planned Kconfig change that relaxes the 'imply', the
      combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
      
      Use IS_REACHABLE() to avoid the vmlinux link error for this case.
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      1cd9b3ab
    • J
      modpost: return error if module is missing ns imports and MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=n · 54b77847
      Jessica Yu 提交于
      Currently when CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=n, modpost
      only warns when a module is missing namespace imports. Under this
      configuration, such a module cannot be loaded into the kernel anyway, as
      the module loader would reject it. We might as well return a build
      error when a module is missing namespace imports under
      CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=n, so that the build
      warning does not go ignored/unnoticed.
      Signed-off-by: NJessica Yu <jeyu@kernel.org>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      54b77847
    • J
      modpost: rework and consolidate logging interface · 93c95e52
      Jessica Yu 提交于
      Rework modpost's logging interface by consolidating merror(), warn(), and
      fatal() to use a single function, modpost_log(). Introduce different
      logging levels (WARN, ERROR, FATAL) as well. The purpose of this cleanup is
      to reduce code duplication when deciding whether or not to warn or error
      out based on a condition.
      Signed-off-by: NJessica Yu <jeyu@kernel.org>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      93c95e52
    • M
      kbuild: allow to run dt_binding_check without kernel configuration · 9dffecc1
      Masahiro Yamada 提交于
      The dt_binding_check target is located outside of the
      'ifneq ($(dtstree),) ... endif' block.
      
      So, you can run 'make dt_binding_check' on any architecture.
      This makes a perfect sense because the dt-schema is arch-agnostic.
      
      The only one problem I see is that scripts/dtc/dtc is not always built.
      For example, ARCH=x86 defconfig does not define CONFIG_DTC. Kbuild
      descends into scripts/dtc/ with doing nothing. Then, it fails to build
      *.example.dt.yaml files.
      
      Let's build scripts/dtc/dtc forcibly when running dt_binding_check.
      
      The dt-schema does not depend on any CONFIG option either, so you
      should be able to run dt_binding_check without the .config file.
      
      Going forward, you can directly run 'make dt_binding_check' in a
      pristine source tree.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: NRob Herring <robh@kernel.org>
      9dffecc1
    • M
      kbuild: allow to run dt_binding_check and dtbs_check in a single command · e10c4321
      Masahiro Yamada 提交于
      Since commit 93512dad ("dt-bindings: Improve validation build error
      handling"), 'make dtbs_check' does not validate the schema fully.
      
      If you want to check everything, you need to run two commands separately.
      
        $ make ARCH=arm dt_binding_check
        $ make ARCH=arm dtbs_check
      
      They are exclusive each other, so you cannot do like this:
      
        $ make ARCH=arm dt_binding_check dtbs_check
      
      In this case, dt-doc-validate and dt-extract-example are skipped
      because CHECK_DTBS is set.
      
      Let's make it possible to run these two targets in a single command.
      It will be useful for schema writers.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: NRob Herring <robh@kernel.org>
      e10c4321
    • M
      kbuild: avoid concurrency issue in parallel building dtbs and dtbs_check · b5154bf6
      Masahiro Yamada 提交于
      'make dtbs_check' checks the shecma in addition to building *.dtb files,
      in other words, 'make dtbs_check' is a super-set of 'make dtbs'.
      So, you do not have to do 'make dtbs dtbs_check', but I want to keep
      the build system as robust as possible in any use.
      
      Currently, 'dtbs' and 'dtbs_check' are independent of each other.
      In parallel building, two threads descend into arch/*/boot/dts/,
      one for dtbs and the other for dtbs_check, then end up with building
      the same DTB simultaneously.
      
      This commit fixes the concurrency issue. Otherwise, I see build errors
      like follows:
      
      $ make ARCH=arm64 defconfig
      $ make -j16 ARCH=arm64 DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/psci.yaml dtbs dtbs_check
        <snip>
        DTC     arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dtb
        DTC     arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtb
        DTC     arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb
        DTC     arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb
        DTC     arch/arm64/boot/dts/freescale/imx8mn-evk.dtb
        DTC     arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb
        DTC     arch/arm64/boot/dts/zte/zx296718-pcbox.dtb
        DTC     arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dt.yaml
        DTC     arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dtb
        DTC     arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dtb
        DTC     arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb
        DTC     arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-inx.dtb
        DTC     arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb
        CHECK   arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dt.yaml
      fixdep: error opening file: arch/arm64/boot/dts/allwinner/.sun50i-h6-orangepi-lite2.dtb.d: No such file or directory
      make[2]: *** [scripts/Makefile.lib:296: arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb] Error 2
      make[2]: *** Deleting file 'arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb'
      make[2]: *** Waiting for unfinished jobs....
        DTC     arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-kd.dtb
        DTC     arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dtb
        DTC     arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dtb
        DTC     arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dtb
      fixdep: parse error; no targets found
      make[2]: *** [scripts/Makefile.lib:296: arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb] Error 1
      make[2]: *** Deleting file 'arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb'
      make[1]: *** [scripts/Makefile.build:505: arch/arm64/boot/dts/allwinner] Error 2
      make[1]: *** Waiting for unfinished jobs....
        DTC     arch/arm64/boot/dts/renesas/r8a77951-salvator-xs.dtb
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: NRob Herring <robh@kernel.org>
      b5154bf6
  7. 03 3月, 2020 8 次提交
  8. 02 3月, 2020 8 次提交
    • M
      fixdep: remove redundant null character check · 3f9070a6
      Masahiro Yamada 提交于
      If *q is '\0', the condition (isalnum(*q) || *q == '_') is false anyway.
      
      It is redundant to ensure non-zero *q.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      3f9070a6
    • M
      fixdep: remove unneeded code and comments about *.ver files · 87d660f0
      Masahiro Yamada 提交于
      This is probably stale code. In old days (~ Linux 2.5.59), Kbuild made
      genksyms generate include/linux/modules/*.ver files.
      
      The currenct Kbuild does not generate *.ver files at all.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      87d660f0
    • M
      kbuild: remove cc-option switch from -Wframe-larger-than= · a83e4ca2
      Masahiro Yamada 提交于
      This CONFIG option was added by commit 35bb5b1e ("Add option to
      enable -Wframe-larger-than= on gcc 4.4"). At that time, the cc-option
      check was needed.
      
      According to Documentation/process/changes.rst, the current minimal
      supported version of GCC is 4.6, so you can assume GCC supports it.
      Clang supports it as well.
      
      Remove the cc-option switch and redundant comments.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: NNathan Chancellor <natechancellor@gmail.com>
      Reviewed-by: NNick Desaulniers <ndesaulniers@google.com>
      a83e4ca2
    • M
      kbuild: remove the owner check in mkcompile_h · f84fdf8d
      Masahiro Yamada 提交于
      This reverts a very old commit, which dates back to the pre-git era:
      
      |commit 5d1cfb5b12f72145d30ba0f53c9f238144b122b8
      |Author: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
      |Date:   Sat Jul 27 02:53:19 2002 -0500
      |
      |    kbuild: Fix compiling/installing as different users
      |
      |    "make bzImage && sudo make install" had the problem that during
      |    the "sudo make install" the build system would notice that the information
      |    in include/linux/compile.h is not accurate (it says "compiled by <user>",
      |    but we are root), thus causing compile.h to be updated and leading to
      |    some recompiles.
      |
      |    We now only update "compile.h" if the current user is the owner of
      |    include/linux/autoconf.h, i.e. the user who did the "make *config". So the
      |    above sequence will correctly state "compiled by <user>".
      |
      |diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
      |index 6313db96172..cd956380978 100755
      |--- a/scripts/mkcompile_h
      |+++ b/scripts/mkcompile_h
      |@@ -3,6 +3,17 @@ ARCH=$2
      | SMP=$3
      | CC=$4
      |
      |+# If compile.h exists already and we don't own autoconf.h
      |+# (i.e. we're not the same user who did make *config), don't
      |+# modify compile.h
      |+# So "sudo make install" won't change the "compiled by <user>"
      |+# do "compiled by root"
      |+
      |+if [ -r $TARGET -a ! -O ../include/linux/autoconf.h ]; then
      |+  echo ' (not modified)'
      |+  exit 0
      |+fi
      |+
      | if [ -r ../.version ]; then
      |   VERSION=`cat ../.version`
      | else
      
      The 'make bzImage && sudo make install' problem no longer happens
      because commit 1648e4f8 ("x86, kbuild: make "make install" not
      depend on vmlinux") fixed the root cause.
      
      Commit 19514fc6 ("arm, kbuild: make "make install" not depend on
      vmlinux") fixed the similar issue on ARM, with detailed explanation.
      
      So, the rule is that the installation targets should never trigger
      the builds of any build artifact. By following it, this check is
      unneeded.
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      f84fdf8d
    • L
      Linux 5.6-rc4 · 98d54f81
      Linus Torvalds 提交于
      98d54f81
    • L
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · e7086982
      Linus Torvalds 提交于
      Pull ext4 fixes from Ted Ts'o:
       "Two more bug fixes (including a regression) for 5.6"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
        jbd2: fix data races at struct journal_head
      e7086982
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · f853ed90
      Linus Torvalds 提交于
      Pull KVM fixes from Paolo Bonzini:
       "More bugfixes, including a few remaining "make W=1" issues such as too
        large frame sizes on some configurations.
      
        On the ARM side, the compiler was messing up shadow stacks between EL1
        and EL2 code, which is easily fixed with __always_inline"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: VMX: check descriptor table exits on instruction emulation
        kvm: x86: Limit the number of "kvm: disabled by bios" messages
        KVM: x86: avoid useless copy of cpufreq policy
        KVM: allow disabling -Werror
        KVM: x86: allow compiling as non-module with W=1
        KVM: Pre-allocate 1 cpumask variable per cpu for both pv tlb and pv ipis
        KVM: Introduce pv check helpers
        KVM: let declaration of kvm_get_running_vcpus match implementation
        KVM: SVM: allocate AVIC data structures based on kvm_amd module parameter
        arm64: Ask the compiler to __always_inline functions used by KVM at HYP
        KVM: arm64: Define our own swab32() to avoid a uapi static inline
        KVM: arm64: Ask the compiler to __always_inline functions used at HYP
        kvm: arm/arm64: Fold VHE entry/exit work into kvm_vcpu_run_vhe()
        KVM: arm/arm64: Fix up includes for trace.h
      f853ed90
    • O
      KVM: VMX: check descriptor table exits on instruction emulation · 86f7e90c
      Oliver Upton 提交于
      KVM emulates UMIP on hardware that doesn't support it by setting the
      'descriptor table exiting' VM-execution control and performing
      instruction emulation. When running nested, this emulation is broken as
      KVM refuses to emulate L2 instructions by default.
      
      Correct this regression by allowing the emulation of descriptor table
      instructions if L1 hasn't requested 'descriptor table exiting'.
      
      Fixes: 07721fee ("KVM: nVMX: Don't emulate instructions in guest mode")
      Reported-by: NJan Kiszka <jan.kiszka@web.de>
      Cc: stable@vger.kernel.org
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Jim Mattson <jmattson@google.com>
      Signed-off-by: NOliver Upton <oupton@google.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      86f7e90c
  9. 01 3月, 2020 2 次提交