Skip to content
Snippets Groups Projects
  1. Nov 27, 2022
  2. Nov 21, 2022
  3. Nov 13, 2022
  4. Nov 06, 2022
  5. Oct 30, 2022
  6. Oct 28, 2022
  7. Oct 27, 2022
  8. Oct 23, 2022
  9. Oct 16, 2022
  10. Oct 03, 2022
    • Alexander Potapenko's avatar
      kmsan: add KMSAN runtime core · f80be457
      Alexander Potapenko authored
      For each memory location KernelMemorySanitizer maintains two types of
      metadata:
      
      1. The so-called shadow of that location - а byte:byte mapping describing
         whether or not individual bits of memory are initialized (shadow is 0)
         or not (shadow is 1).
      2. The origins of that location - а 4-byte:4-byte mapping containing
         4-byte IDs of the stack traces where uninitialized values were
         created.
      
      Each struct page now contains pointers to two struct pages holding KMSAN
      metadata (shadow and origins) for the original struct page.  Utility
      routines in mm/kmsan/core.c and mm/kmsan/shadow.c handle the metadata
      creation, addressing, copying and checking.  mm/kmsan/report.c performs
      error reporting in the cases an uninitialized value is used in a way that
      leads to undefined behavior.
      
      KMSAN compiler instrumentation is responsible for tracking the metadata
      along with the kernel memory.  mm/kmsan/instrumentation.c provides the
      implementation for instrumentation hooks that are called from files
      compiled with -fsanitize=kernel-memory.
      
      To aid parameter passing (also done at instrumentation level), each
      task_struct now contains a struct kmsan_task_state used to track the
      metadata of function parameters and return values for that task.
      
      Finally, this patch provides CONFIG_KMSAN that enables KMSAN, and declares
      CFLAGS_KMSAN, which are applied to files compiled with KMSAN.  The
      KMSAN_SANITIZE:=n Makefile directive can be used to completely disable
      KMSAN instrumentation for certain files.
      
      Similarly, KMSAN_ENABLE_CHECKS:=n disables KMSAN checks and makes newly
      created stack memory initialized.
      
      Users can also use functions from include/linux/kmsan-checks.h to mark
      certain memory regions as uninitialized or initialized (this is called
      "poisoning" and "unpoisoning") or check that a particular region is
      initialized.
      
      Link: https://lkml.kernel.org/r/20220915150417.722975-12-glider@google.com
      
      
      Signed-off-by: default avatarAlexander Potapenko <glider@google.com>
      Acked-by: default avatarMarco Elver <elver@google.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Andrey Konovalov <andreyknvl@gmail.com>
      Cc: Andrey Konovalov <andreyknvl@google.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Eric Biggers <ebiggers@google.com>
      Cc: Eric Biggers <ebiggers@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Ilya Leoshkevich <iii@linux.ibm.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Petr Mladek <pmladek@suse.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Vegard Nossum <vegard.nossum@oracle.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f80be457
  11. Oct 02, 2022
  12. Sep 30, 2022
    • Kees Cook's avatar
      hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero · 607e57c6
      Kees Cook authored
      
      Now that Clang's -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
      option is no longer required, remove it from the command line. Clang 16
      and later will warn when it is used, which will cause Kconfig to think
      it can't use -ftrivial-auto-var-init=zero at all. Check for whether it
      is required and only use it when so.
      
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: linux-kbuild@vger.kernel.org
      Cc: llvm@lists.linux.dev
      Cc: stable@vger.kernel.org
      Fixes: f02003c8 ("hardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      607e57c6
  13. Sep 28, 2022
  14. Sep 27, 2022
    • Rob Herring's avatar
      dt: Add a check for undocumented compatible strings in kernel · b6acf807
      Rob Herring authored
      Add a make target, dt_compatible_check, to extract compatible strings
      from kernel sources and check if they are documented by a schema.
      At least version v2022.08 of dtschema with dt-check-compatible is
      required.
      
      This check can also be run manually on specific files or directories:
      
      scripts/dtc/dt-extract-compatibles drivers/clk/ | \
        xargs dt-check-compatible -v -s Documentation/devicetree/bindings/processed-schema.json
      
      Currently, there are about 3800 undocumented compatible strings. Most of
      these are cases where the binding is not yet converted (given there
      are 1900 .txt binding files remaining).
      
      Link: https://lore.kernel.org/all/20220916012510.2718170-1-robh@kernel.org/
      
      
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      b6acf807
  15. Sep 26, 2022
  16. Sep 25, 2022
  17. Sep 18, 2022
  18. Sep 11, 2022
  19. Sep 04, 2022
Loading