From nobody Fri Dec 19 13:25:00 2025 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 618EA319852 for ; Tue, 16 Dec 2025 10:16:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765880209; cv=none; b=YU1W4+7zUwSzo2PqTW14IBD53A4KlEd7OmhrkrVmsnZmt9mp8oReIChgJEmO7R+jYx3L9/LioMFtqPmUpDf+jEo0e4bsbhv6VrgoPt5rFslLbHJ5X6zB/oG/bFXDGBtFBatWfa31mJ/fulxCJw3MPyvt+eJBWZKjnNaqyZzfMv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765880209; c=relaxed/simple; bh=6gLHtvCRjdFJvUPhmnKzmZ6MUckU9lfZ/Xjsh3goSnw=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=gA07MmD4G3zlywg6Sw4vHQnFuYdu3fcJP0IatNDW99pyVTOV+FfolyFWKPyhGq6Q4QUp/mEfZ71oVr7pQpdBrBRrYn1DA7TaMHTNefp72DlKTm/KBdhyWvJ1gGbB/SOaBFo2mn9hMJm1CB31EnrOSoY70LpJEZwDSZKbiPQMWMk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jackmanb.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=W0UVfK/h; arc=none smtp.client-ip=209.85.221.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jackmanb.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="W0UVfK/h" Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-43065ad16a8so1420912f8f.1 for ; Tue, 16 Dec 2025 02:16:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1765880207; x=1766485007; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=mIaoUkPmmOJUMbaBzFd5RgQ3q7rdKEgi166V60yfEd4=; b=W0UVfK/hBn8h77Eb3k/jnxt5SMEAUUyIPDNAccpUkwRsAdXV7s3jmQ0SSaQI8H7VlY pjXWAuJmfXlCrT8HG2+5+Qu1xTr1OZpKmib4ExCZCaEMMOhrpafIKjXfZL8XrU+rMs/o fUZDji+n2bOlSW0hLPvdCuvLbMJeCBCCXO5Bb10ZMLPsB3WsDlTCzy8zeCIodXCOSZNI KWg70fD/GzeQDaW00FKlZalPso/oiOpNGgt4hJLcapv/CH/4CDfhAEFyzEDhzJ4SJ+uw t6M8Ahq+Tu6C1X2cGFHMpVBxk1qlPTM0awgPL9OMWhyRFypv3ayoMX7MsIGG41jbt8mk nKOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765880207; x=1766485007; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mIaoUkPmmOJUMbaBzFd5RgQ3q7rdKEgi166V60yfEd4=; b=H0iywTePI3qoy5MluHdaNyZaMbCnD4dNCce5wnMEg1/vSMWr9PfgRj0brOxof658HS 8Je+pUB1slzBVl15D9MD8LmtuiSgsEJ5Pz4ejLejBPtnWvV3qejwSNUq7AIxXTkJeHHR zWsEZaB6P7O8wYQIbDk8HyYICJrcNXnUeJKuWuxtEmAMHLuAOrOtEUvswGrPgfdnzSwM A7I5mxNj+QmUZlRwEcy8UI8t/tg0YU64sdsxE4w9jri9hWkNU4z9/8RRf6f5ujNQzVdJ j6T2+fOPwDlWLbFoTjJZEzWc8b6g74kqA0I3q6krLzhbWrBVqmkRw3k21OQXI9VRQlPy aqOA== X-Forwarded-Encrypted: i=1; AJvYcCXJpD7gpePhBReJfJVjx6pGo6wGdZrtArQCO2TmQh2vVFqUUk0Dhhb3rZuxT59qFQYhLC/6cNlclgtRVqo=@vger.kernel.org X-Gm-Message-State: AOJu0Yxv10jZJ3yY+/PJDLkFMMHlYnALrUOl00JqXzAwC4MwNRdnMVWx eVjwrw9EGDO1nQ2FK9p57z8RwcIf3Lrg//qKZbTiHcLPMcvGcIaU+0QLRugFZk0N/YopFxhl4Mk utDWrBy4hl8h/wQ== X-Google-Smtp-Source: AGHT+IFS5MNBem4cFAx1/02LlUKM4nsKU3vLRTVMVpy1DPCx+drNnY04kUwxrb61WCmz4Bwjhz6dwtKzVbGRYg== X-Received: from wmbhi3.prod.google.com ([2002:a05:600c:5343:b0:477:c551:bdb9]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600d:6405:20b0:47a:935f:618e with SMTP id 5b1f17b1804b1-47a935f64d7mr109743225e9.15.1765880206873; Tue, 16 Dec 2025 02:16:46 -0800 (PST) Date: Tue, 16 Dec 2025 10:16:35 +0000 In-Reply-To: <20251216-gcov-inline-noinstr-v3-0-10244d154451@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251216-gcov-inline-noinstr-v3-0-10244d154451@google.com> X-Mailer: b4 0.14.2 Message-ID: <20251216-gcov-inline-noinstr-v3-2-10244d154451@google.com> Subject: [PATCH v3 2/3] kcsan: mark !__SANITIZE_THREAD__ stubs __always_inline From: Brendan Jackman To: Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Marco Elver , Ard Biesheuvel , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Brendan Jackman Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The x86 instrumented bitops in include/asm-generic/bitops/instrumented-non-atomic.h are KCSAN-instrumented via explicit calls to instrument_* functions from include/linux/instrumented.h. This bitops are used from noinstr code in __sev_es_nmi_complete(). This code avoids noinstr violations by disabling __SANITIZE_THREAD__ etc for the compilation unit. However, when GCOV is enabled, there can still be violations caused by the stub versions of these functions, since coverage instrumentation is injected that causes them to be out-of-lined. Fix this by just applying __always_inline. Signed-off-by: Brendan Jackman --- include/linux/kcsan-checks.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/kcsan-checks.h b/include/linux/kcsan-checks.h index 92f3843d9ebb8177432bb4eccc151ea66d3dcbb7..c4c8e03e53459f5030ca33f9103= a9bde49fd3820 100644 --- a/include/linux/kcsan-checks.h +++ b/include/linux/kcsan-checks.h @@ -226,10 +226,10 @@ static inline void kcsan_end_scoped_access(struct kcs= an_scoped_access *sa) { } #define __kcsan_disable_current kcsan_disable_current #define __kcsan_enable_current kcsan_enable_current_nowarn #else /* __SANITIZE_THREAD__ */ -static inline void kcsan_check_access(const volatile void *ptr, size_t siz= e, - int type) { } -static inline void __kcsan_enable_current(void) { } -static inline void __kcsan_disable_current(void) { } +static __always_inline void kcsan_check_access(const volatile void *ptr, + size_t size, int type) { } +static __always_inline void __kcsan_enable_current(void) { } +static __always_inline void __kcsan_disable_current(void) { } #endif /* __SANITIZE_THREAD__ */ =20 #if defined(CONFIG_KCSAN_WEAK_MEMORY) && defined(__SANITIZE_THREAD__) --=20 2.50.1