From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLACK,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CB3EC433DF for ; Mon, 8 Jun 2020 23:16:01 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id C305D20823 for ; Mon, 8 Jun 2020 23:16:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="jKMP9b2K" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C305D20823 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 461266B0037; Mon, 8 Jun 2020 19:16:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4120A6B005A; Mon, 8 Jun 2020 19:16:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 302096B005C; Mon, 8 Jun 2020 19:16:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0166.hostedemail.com [216.40.44.166]) by kanga.kvack.org (Postfix) with ESMTP id 12C666B0037 for ; Mon, 8 Jun 2020 19:16:00 -0400 (EDT) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id C0493181ABEA7 for ; Mon, 8 Jun 2020 23:15:59 +0000 (UTC) X-FDA: 76907604438.12.snow26_3c04a6d26dbd Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin12.hostedemail.com (Postfix) with ESMTP id 92E11180271AA for ; Mon, 8 Jun 2020 23:15:59 +0000 (UTC) X-HE-Tag: snow26_3c04a6d26dbd X-Filterd-Recvd-Size: 5365 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf21.hostedemail.com (Postfix) with ESMTP for ; Mon, 8 Jun 2020 23:15:58 +0000 (UTC) Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B42C120760; Mon, 8 Jun 2020 23:15:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591658158; bh=8oY5NOb43ECW2UuHijbZc/Fbrh+sjRf3T0dHqJZ28CQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jKMP9b2KNY0f7qAij0PKq6hIUuXj7vrfuB2kGJw7e1sUuHjjQWxV5/6aqFBRdUyej IEl4orlb0DzhOa04nSw2m5bnJ9peOWKnpLvvAqs1C96xMEC8aRCIuRf0gNKk3/9seL 6YDb1x0f8o8gZd6Bl2cPUvY+KzSdtCFOPkVflBYY= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Marco Elver , kernel test robot , Andrew Morton , Andrey Konovalov , Dmitry Vyukov , Alexander Potapenko , Andrey Ryabinin , Qian Cai , Linus Torvalds , Greg Kroah-Hartman , kasan-dev@googlegroups.com, linux-mm@kvack.org Subject: [PATCH AUTOSEL 5.6 188/606] kasan: disable branch tracing for core runtime Date: Mon, 8 Jun 2020 19:05:13 -0400 Message-Id: <20200608231211.3363633-188-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200608231211.3363633-1-sashal@kernel.org> References: <20200608231211.3363633-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-Rspamd-Queue-Id: 92E11180271AA X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam05 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Marco Elver 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 Ca= i] 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 Signed-off-by: Marco Elver Signed-off-by: Andrew Morton Reviewed-by: Andrey Konovalov Cc: Dmitry Vyukov Cc: Alexander Potapenko Cc: Andrey Ryabinin Cc: Qian Cai Cc: 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 Signed-off-by: Greg Kroah-Hartman --- 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 =3D $(CC_FLAGS_FTRACE) # Function splitter causes unnecessary splits in __asan_load1/__asan_sto= re1 # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D63533 =20 -CFLAGS_common.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-pr= otector) -CFLAGS_generic.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-p= rotector) -CFLAGS_generic_report.o :=3D $(call cc-option, -fno-conserve-stack -fno-= stack-protector) -CFLAGS_tags.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-prot= ector) +CFLAGS_common.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-pr= otector) -DDISABLE_BRANCH_PROFILING +CFLAGS_generic.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-p= rotector) -DDISABLE_BRANCH_PROFILING +CFLAGS_generic_report.o :=3D $(call cc-option, -fno-conserve-stack -fno-= stack-protector) -DDISABLE_BRANCH_PROFILING +CFLAGS_tags.o :=3D $(call cc-option, -fno-conserve-stack -fno-stack-prot= ector) -DDISABLE_BRANCH_PROFILING =20 obj-$(CONFIG_KASAN) :=3D common.o init.o report.o obj-$(CONFIG_KASAN_GENERIC) +=3D 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 @@ */ =20 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#define DISABLE_BRANCH_PROFILING =20 #include #include 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 @@ */ =20 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#define DISABLE_BRANCH_PROFILING =20 #include #include --=20 2.25.1