• A
    kmsan: introduce __no_sanitize_memory and __no_kmsan_checks · 9b448bc2
    Alexander Potapenko 提交于
    __no_sanitize_memory is a function attribute that instructs KMSAN to skip
    a function during instrumentation.  This is needed to e.g.  implement the
    noinstr functions.
    
    __no_kmsan_checks is a function attribute that makes KMSAN ignore the
    uninitialized values coming from the function's inputs, and initialize the
    function's outputs.
    
    Functions marked with this attribute can't be inlined into functions not
    marked with it, and vice versa.  This behavior is overridden by
    __always_inline.
    
    __SANITIZE_MEMORY__ is a macro that's defined iff the file is instrumented
    with KMSAN.  This is not the same as CONFIG_KMSAN, which is defined for
    every file.
    
    Link: https://lkml.kernel.org/r/20220915150417.722975-8-glider@google.comSigned-off-by: NAlexander Potapenko <glider@google.com>
    Reviewed-by: NMarco 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: NAndrew Morton <akpm@linux-foundation.org>
    9b448bc2
compiler-gcc.h 4.3 KB