lkml.org 
[lkml]   [2020]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.6 188/606] kasan: disable branch tracing for core runtime
    Date
    From: Marco Elver <elver@google.com>

    commit 33cd65e73abd693c00c4156cf23677c453b41b3b upstream.

    During early boot, while KASAN is not yet initialized, it is possible to
    enter reporting code-path and end up in kasan_report().

    While uninitialized, the branch there prevents generating any reports,
    however, under certain circumstances when branches are being traced
    (TRACE_BRANCH_PROFILING), we may recurse deep enough to cause kernel
    reboots without warning.

    To prevent similar issues in future, we should disable branch tracing
    for the core runtime.

    [elver@google.com: remove duplicate DISABLE_BRANCH_PROFILING, per Qian Cai]
    Link: https://lore.kernel.org/lkml/20200517011732.GE24705@shao2-debian/
    Link: http://lkml.kernel.org/r/20200522075207.157349-1-elver@google.com
    Reported-by: kernel test robot <rong.a.chen@intel.com>
    Signed-off-by: Marco Elver <elver@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Andrey Konovalov <andreyknvl@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Qian Cai <cai@lca.pw>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r//20200517011732.GE24705@shao2-debian/
    Link: http://lkml.kernel.org/r/20200519182459.87166-1-elver@google.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    mm/kasan/Makefile | 8 ++++----
    mm/kasan/generic.c | 1 -
    mm/kasan/tags.c | 1 -
    3 files changed, 4 insertions(+), 6 deletions(-)

    diff --git a/mm/kasan/Makefile b/mm/kasan/Makefile
    index 08b43de2383b..f36ffc090f5f 100644
    --- a/mm/kasan/Makefile
    +++ b/mm/kasan/Makefile
    @@ -14,10 +14,10 @@ CFLAGS_REMOVE_tags.o = $(CC_FLAGS_FTRACE)
    # Function splitter causes unnecessary splits in __asan_load1/__asan_store1
    # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533

    -CFLAGS_common.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
    -CFLAGS_generic.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
    -CFLAGS_generic_report.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
    -CFLAGS_tags.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
    +CFLAGS_common.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
    +CFLAGS_generic.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
    +CFLAGS_generic_report.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
    +CFLAGS_tags.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING

    obj-$(CONFIG_KASAN) := common.o init.o report.o
    obj-$(CONFIG_KASAN_GENERIC) += generic.o generic_report.o quarantine.o
    diff --git a/mm/kasan/generic.c b/mm/kasan/generic.c
    index 616f9dd82d12..76a80033e0b7 100644
    --- a/mm/kasan/generic.c
    +++ b/mm/kasan/generic.c
    @@ -15,7 +15,6 @@
    */

    #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    -#define DISABLE_BRANCH_PROFILING

    #include <linux/export.h>
    #include <linux/interrupt.h>
    diff --git a/mm/kasan/tags.c b/mm/kasan/tags.c
    index 0e987c9ca052..caf4efd9888c 100644
    --- a/mm/kasan/tags.c
    +++ b/mm/kasan/tags.c
    @@ -12,7 +12,6 @@
    */

    #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    -#define DISABLE_BRANCH_PROFILING

    #include <linux/export.h>
    #include <linux/interrupt.h>
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-09 01:20    [W:2.861 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site