Skip to content
Snippets Groups Projects
  1. May 03, 2019
  2. Apr 11, 2019
    • Wiebe, Wladislav (Nokia - DE/Ulm)'s avatar
      modpost: make KBUILD_MODPOST_WARN also configurable for external modules · 83da1bed
      Wiebe, Wladislav (Nokia - DE/Ulm) authored
      
      Commit ea837f1c ("kbuild: make modpost processing configurable")
      was intended to give KBUILD_MODPOST_WARN flexibility to be configurable.
      Right now KBUILD_MODPOST_WARN gets just ignored when KBUILD_EXTMOD is
      set which happens per default when building modules out of the tree.
      
      This change gives the opportunity to define module build behaving also
      in case of out of tree builds and default will become exit on error.
      Errors which can be detected by the build should be trapped out of the box
      there, unless somebody wants to notice broken stuff later at runtime.
      
      As this patch changes the default behaving from warning to error,
      users can consider to fix it for external module builds by:
      - providing module symbol table via KBUILD_EXTRA_SYMBOLS for
        modules which are dependent
      - OR getting old behaving back by passing KBUILD_MODPOST_WARN to the build
      
      Signed-off-by: default avatarWladislav Wiebe <wladislav.wiebe@nokia.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      83da1bed
  3. Apr 02, 2019
  4. Mar 29, 2019
  5. Mar 28, 2019
  6. Mar 17, 2019
    • Masahiro Yamada's avatar
      kconfig: remove stale lxdialog/.gitignore · c71bb9f8
      Masahiro Yamada authored
      
      When this .gitignore was added, lxdialog was an independent hostprogs-y.
      
      Now that all objects in lxdialog/ are directly linked to mconf, the
      lxdialog is no longer generated.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      c71bb9f8
    • Masahiro Yamada's avatar
      kbuild: force all architectures except um to include mandatory-y · 037fc336
      Masahiro Yamada authored
      
      Currently, every arch/*/include/uapi/asm/Kbuild explicitly includes
      the common Kbuild.asm file. Factor out the duplicated include directives
      to scripts/Makefile.asm-generic so that no architecture would opt out
      of the mandatory-y mechanism.
      
      um is not forced to include mandatory-y since it is a very exceptional
      case which does not support UAPI.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      037fc336
    • Masahiro Yamada's avatar
      kbuild: warn redundant generic-y · 7cbbbb8b
      Masahiro Yamada authored
      
      The generic-y is redundant under the following condition:
      
       - arch has its own implementation
      
       - the same header is added to generated-y
      
       - the same header is added to mandatory-y
      
      If a redundant generic-y is found, the warning like follows is displayed:
      
        scripts/Makefile.asm-generic:20: redundant generic-y found in arch/arm/include/asm/Kbuild: timex.h
      
      I fixed up arch Kbuild files found by this.
      
      Suggested-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7cbbbb8b
    • Douglas Anderson's avatar
      Revert "modsign: Abort modules_install when signing fails" · f84dde10
      Douglas Anderson authored
      This reverts commit caf6fe91.
      
      The commit was fine but is no longer needed as of commit 3a2429e1
      ("kbuild: change if_changed_rule for multi-line recipe").  Let's go
      back to using ";" to be consistent.
      
      For some discussion, see:
      
      https://lkml.kernel.org/r/CAK7LNASde0Q9S5GKeQiWhArfER4S4wL1=R_FW8q0++_X3T5=hQ@mail.gmail.com
      
      
      
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      f84dde10
    • Arseny Maslennikov's avatar
      kbuild: deb-pkg: avoid implicit effects · f6d9db63
      Arseny Maslennikov authored
      
      * The man page for dpkg-source(1) notes:
      
      >      -b, --build directory [format-specific-parameters]
      >             Build  a  source  package  (--build since dpkg 1.17.14).
      >             <...>
      >
      >             dpkg-source will build the source package with the first
      >             format found in this ordered list: the format  indicated
      >             with  the  --format  command  line  option,  the  format
      >             indicated in debian/source/format, “1.0”.  The  fallback
      >             to “1.0” is deprecated and will be removed at some point
      >             in the future, you should always  document  the  desired
      >             source   format  in  debian/source/format.  See  section
      >             SOURCE PACKAGE FORMATS for an extensive  description  of
      >             the various source package formats.
      
        Thus it would be more foolproof to explicitly use 1.0 (as we always
        did) than to rely on dpkg-source's defaults.
      
      * In a similar vein, debian/rules is not made executable by mkdebian,
        and dpkg-source warns about that but still silently fixes the file.
        Let's be explicit once again.
      
      Signed-off-by: default avatarArseny Maslennikov <ar@cs.msu.ru>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      f6d9db63
    • Wen Yang's avatar
      coccinelle: semantic code search for missing put_device() · da9cfb87
      Wen Yang authored
      
      The of_find_device_by_node() takes a reference to the underlying device
      structure, we should release that reference.
      The implementation of this semantic code search is:
      In a function, for a local variable returned by calling
      of_find_device_by_node(),
      a, if it is released by a function such as
         put_device()/of_dev_put()/platform_device_put() after the last use,
         it is considered that there is no reference leak;
      b, if it is passed back to the caller via
         dev_get_drvdata()/platform_get_drvdata()/get_device(), etc., the
         reference will be released in other functions, and the current function
         also considers that there is no reference leak;
      c, for the rest of the situation, the current function should release the
         reference by calling put_device, this code search will report the
         corresponding error message.
      
      By using this semantic code search, we have found some object reference leaks,
      such as:
      commit 11907e9d ("ASoC: fsl-asoc-card: fix object reference leaks in
      fsl_asoc_card_probe")
      commit a12085d1 ("mtd: rawnand: atmel: fix possible object reference leak")
      commit 11493f26 ("mtd: rawnand: jz4780: fix possible object reference leak")
      
      There are still dozens of reference leaks in the current kernel code.
      
      Further, for the case of b, the object returned to other functions may also
      have a reference leak, we will continue to develop other cocci scripts to
      further check the reference leak.
      
      Signed-off-by: default avatarWen Yang <wen.yang99@zte.com.cn>
      Reviewed-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Reviewed-by: default avatarMarkus Elfring <Markus.Elfring@web.de>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      da9cfb87
  7. Mar 13, 2019
  8. Mar 11, 2019
  9. Mar 08, 2019
  10. Mar 07, 2019
  11. Mar 06, 2019
  12. Mar 04, 2019
    • Kees Cook's avatar
      gcc-plugins: structleak: Generalize to all variable types · 81a56f6d
      Kees Cook authored
      
      This adjusts structleak to also work with non-struct types when they
      are passed by reference, since those variables may leak just like
      anything else. This is exposed via an improved set of Kconfig options.
      (This does mean structleak is slightly misnamed now.)
      
      Building with CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL should give the
      kernel complete initialization coverage of all stack variables passed
      by reference, including padding (see lib/test_stackinit.c).
      
      Using CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE to count added initializations
      under defconfig:
      
      	..._BYREF:      5945 added initializations
      	..._BYREF_ALL: 16606 added initializations
      
      There is virtually no change to text+data size (both have less than 0.05%
      growth):
      
         text    data     bss     dec     hex filename
      19502103        5051456 1917000 26470559        193e89f vmlinux.stock
      19513412        5051456 1908808 26473676        193f4cc vmlinux.byref
      19516974        5047360 1900616 26464950        193d2b6 vmlinux.byref_all
      
      The measured performance difference is in the noise for hackbench and
      kernel build benchmarks:
      
      Stock:
      
      	5x hackbench -g 20 -l 1000
      	Mean:   10.649s
      	Std Dev: 0.339
      
      	5x kernel build (4-way parallel)
      	Mean:  261.98s
      	Std Dev: 1.53
      
      CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF:
      
      	5x hackbench -g 20 -l 1000
      	Mean:   10.540s
      	Std Dev: 0.233
      
      	5x kernel build (4-way parallel)
      	Mean:  260.52s
      	Std Dev: 1.31
      
      CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL:
      
      	5x hackbench -g 20 -l 1000
      	Mean:   10.320
      	Std Dev: 0.413
      
      	5x kernel build (4-way parallel)
      	Mean:  260.10
      	Std Dev: 0.86
      
      This does not yet solve missing padding initialization for structures
      on the stack that are never passed by reference (which should be a tiny
      minority). Hopefully this will be more easily addressed by upstream
      compiler fixes after clarifying the C11 padding initialization
      specification.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      81a56f6d
    • Masahiro Yamada's avatar
      kbuild: clean up scripts/gcc-version.sh · fa7295ab
      Masahiro Yamada authored
      
      Now that the Kconfig is the only user of this script, we can drop
      unneeded code.
      
      Remove the -p option, and stop prepending the output with zero,
      so that Kconfig can directly use the output from this script.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      fa7295ab
Loading