Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp971476rwn; Thu, 15 Sep 2022 08:41:59 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5GmdBDOjTYPx3//u2hx55k1/jvvx72JNfPeaS9EJxXjF4DXxS4TCplQIU4dawpyjj2ulwn X-Received: by 2002:a63:c14d:0:b0:438:766d:e608 with SMTP id p13-20020a63c14d000000b00438766de608mr383769pgi.455.1663256519371; Thu, 15 Sep 2022 08:41:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663256519; cv=none; d=google.com; s=arc-20160816; b=071WCz5LdBu7ztop/2puBfOFG2g2xQXpdu9dYzoZMJy/DF23QDvanKjB4G8juulVPn 3k3V+P3rjcVpzC0ioMSALqrgcQ0LQmQninoNv2UslojwlHy9Lly/70XDvjhuHS0U5aeq 5ZBczImiQIo9bQngCEPVxomvmIezohLreD/MKlD00HfG2h/sE3rtSjbmiCCf+q1Z9yiy RUhT/3EbJXbb1DtMkLneKJdXhIxKhVfCEJj69p5yNR2IUsQftQOutlFlBqew5CzE7SH8 hLGUDbKo6M+s3fPJfg+a6ezS1EFv6MrdoDqHwdxllEjW3mClMlfjnLgBPArMZRxk4vW1 L82A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=7DSx6RI0rEPDhrbVIpPikNsWTzcR9RC7kojIoDN82TE=; b=KXnU2odRFDyP8017El8Y/RvR4nMV4q2QYNKZTITXmzdjlPeRH1uVqSSfuwHQvkBR0C MBEWzfFZfad7PM/Xkj7pCYGNIB2bxsiPoESjiT75Xgp6kkkfsaTxM/4iBzMGi6+gPmjQ ahDZJaDO6UdiZKOHadv2ri24zR4Ull2x+rhuaqzkYDpJVHSz/+UTwYmhgOl2thcAZHQ7 5/sbpDD+4Z0DMW4CVdPAOaYsJCfHOu/3k8F5t3F5P1BG9p4po5kZCloZOK34Gtj7P2Bc dqpqDAfnqeWpJcBsQ1XyTAD/zXAo6kfQfRC3J7n9eVti/76rEPoSOhvnLUlGbFx4g3UK hvDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Ei0ZOo1t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k19-20020a637b53000000b0043891515a65si1944199pgn.94.2022.09.15.08.41.47; Thu, 15 Sep 2022 08:41:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Ei0ZOo1t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230430AbiIOPHP (ORCPT + 99 others); Thu, 15 Sep 2022 11:07:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230424AbiIOPFv (ORCPT ); Thu, 15 Sep 2022 11:05:51 -0400 Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFD4686884 for ; Thu, 15 Sep 2022 08:05:12 -0700 (PDT) Received: by mail-ed1-x54a.google.com with SMTP id y14-20020a056402440e00b0044301c7ccd9so13178057eda.19 for ; Thu, 15 Sep 2022 08:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date; bh=7DSx6RI0rEPDhrbVIpPikNsWTzcR9RC7kojIoDN82TE=; b=Ei0ZOo1tqmI3niKdg+NjyFrYcuWag/zfWQm1yP23l3BnyrmeeyX9JElhu/ainPdOo+ W/dywvadr04aecsU+ebZxNPOW9ICDqXTNUBOfu9kwz4f+GBrzmn4+l42PxeNQZxqW7qX Lc6kk/7HGejkAghJS9IEbkisG2lBRJSt45/r7bb7cF8xd11QNz4bx8M34JSwDTW4yhwt tJ78o05A6unsLVwF1wekgeIG4C2cUR1DKnuMtF3G53ElLkeVtM+TiQxtNlZWsycB4QVI EGJwbLtLFKkrnXnXXmVON0VvjQn5HAXmX0ge2JfPIbRLtNJmQD9OXFejAYW9ubOcI1mg OwYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date; bh=7DSx6RI0rEPDhrbVIpPikNsWTzcR9RC7kojIoDN82TE=; b=1puP8V/RFJ7h+NJJasP723WUS24jC59pneufUMP9GYo2c8+7W/WGXJq7eLc0B7HqBQ RK3MM8haOWMdHSVns9iuh6DC88qF/clCP1bRp2oKlk2Q9qvmb1c1rDcrYrmL+qCI/yLd gsEhV7yR//pfCqvy+keervanzrBxlntcXJAcD0j+SV1+pdctLomkbMKH6a9LO8zGR80Z /H9+/8WpnzO8fv/3X3hmJeOGmJYmzzIHLCQFsVCZuSENkvbI+xjkjgRYLbrVvdSpwz8W PDcarRJNzYl90c0wy6h92YIAne0kHs5VF0j69cylme1W+2F2SosOydjGZ5uxflg8oYFH Zrmw== X-Gm-Message-State: ACrzQf0NPxNY9uM2s7ypRIdyhZSgt3T+LI8ydm24U5kEaeA4D5zN/qiy vByIDjwEZTIERjvE0RB1Luekn7SB2/4= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:686d:27b5:495:85b7]) (user=glider job=sendgmr) by 2002:aa7:c74c:0:b0:44e:a7b9:d5c9 with SMTP id c12-20020aa7c74c000000b0044ea7b9d5c9mr264063eds.19.1663254311281; Thu, 15 Sep 2022 08:05:11 -0700 (PDT) Date: Thu, 15 Sep 2022 17:03:46 +0200 In-Reply-To: <20220915150417.722975-1-glider@google.com> Mime-Version: 1.0 References: <20220915150417.722975-1-glider@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220915150417.722975-13-glider@google.com> Subject: [PATCH v7 12/43] kmsan: disable instrumentation of unsupported common kernel code From: Alexander Potapenko To: glider@google.com Cc: Alexander Viro , Alexei Starovoitov , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Biggers , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Marco Elver , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Stephen Rothwell , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org EFI stub cannot be linked with KMSAN runtime, so we disable instrumentation for it. Instrumenting kcov, stackdepot or lockdep leads to infinite recursion caused by instrumentation hooks calling instrumented code again. Signed-off-by: Alexander Potapenko Reviewed-by: Marco Elver --- v4: -- This patch was previously part of "kmsan: disable KMSAN instrumentation for certain kernel parts", but was split away per Mark Rutland's request. v5: -- remove unnecessary comment belonging to another patch Link: https://linux-review.googlesource.com/id/I41ae706bd3474f074f6a870bfc3f0f90e9c720f7 --- drivers/firmware/efi/libstub/Makefile | 1 + kernel/Makefile | 1 + kernel/locking/Makefile | 3 ++- lib/Makefile | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile index 2c67f71f23753..2c1eb1fb0f226 100644 --- a/drivers/firmware/efi/libstub/Makefile +++ b/drivers/firmware/efi/libstub/Makefile @@ -53,6 +53,7 @@ GCOV_PROFILE := n # Sanitizer runtimes are unavailable and cannot be linked here. KASAN_SANITIZE := n KCSAN_SANITIZE := n +KMSAN_SANITIZE := n UBSAN_SANITIZE := n OBJECT_FILES_NON_STANDARD := y diff --git a/kernel/Makefile b/kernel/Makefile index 318789c728d32..d754e0be1176d 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -38,6 +38,7 @@ KCOV_INSTRUMENT_kcov.o := n KASAN_SANITIZE_kcov.o := n KCSAN_SANITIZE_kcov.o := n UBSAN_SANITIZE_kcov.o := n +KMSAN_SANITIZE_kcov.o := n CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack) -fno-stack-protector # Don't instrument error handlers diff --git a/kernel/locking/Makefile b/kernel/locking/Makefile index d51cabf28f382..ea925731fa40f 100644 --- a/kernel/locking/Makefile +++ b/kernel/locking/Makefile @@ -5,8 +5,9 @@ KCOV_INSTRUMENT := n obj-y += mutex.o semaphore.o rwsem.o percpu-rwsem.o -# Avoid recursion lockdep -> KCSAN -> ... -> lockdep. +# Avoid recursion lockdep -> sanitizer -> ... -> lockdep. KCSAN_SANITIZE_lockdep.o := n +KMSAN_SANITIZE_lockdep.o := n ifdef CONFIG_FUNCTION_TRACER CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE) diff --git a/lib/Makefile b/lib/Makefile index ffabc30a27d4e..fcebece0f5b6f 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -275,6 +275,9 @@ obj-$(CONFIG_POLYNOMIAL) += polynomial.o CFLAGS_stackdepot.o += -fno-builtin obj-$(CONFIG_STACKDEPOT) += stackdepot.o KASAN_SANITIZE_stackdepot.o := n +# In particular, instrumenting stackdepot.c with KMSAN will result in infinite +# recursion. +KMSAN_SANITIZE_stackdepot.o := n KCOV_INSTRUMENT_stackdepot.o := n obj-$(CONFIG_REF_TRACKER) += ref_tracker.o -- 2.37.2.789.g6183377224-goog