Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4019754ybv; Mon, 10 Feb 2020 10:43:51 -0800 (PST) X-Google-Smtp-Source: APXvYqxkoaZmV6DoPCFyUjIw15VUCrmqCUtYBvO/XbI2TT5oKiC5q+i9tIiS00OMKVqYb5Kben+p X-Received: by 2002:a9d:ecc:: with SMTP id 70mr2026957otj.182.1581360231113; Mon, 10 Feb 2020 10:43:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581360231; cv=none; d=google.com; s=arc-20160816; b=W7ZHkVB89u0OQj2krLaiq/DakmDR9HahvKldFCjcPYr4tXGdFaEKOpidwSqmm9+xzP 5lVpJARTRrCwOTFTRSkkINKLbcZMU0W81PhW0MlOZ+etM/oKOy8UJ5ovm83PiNm+WwNR 5WDaca7sx3o50Q0OCrS3fteUIgCsMC2TcIjqxKhxeEilhlK9KUdy9nJFTSZYastvp9uz U5iMuqUYOyOWkoY/UtYrpLaY7zU7d4BhuSAhu/6KWXblPeQXx3/q50qTUR2wU0kZRCVy r9ajAJKQ4aHn0ffgemBGXodqMURP0s6uZv9pK8r+pNGI4T61c63ZoF8XdVsBGkaFTGBD 7Vew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:mime-version :message-id:date:dkim-signature; bh=QdVP7VsBJw+IixbDmWdM2Gp9NWKsZNR2FStw5cLegFk=; b=YVlg9Vzldp9LGtX62YEj9cnSuhdwmplIT3Hq2Npi6ReSdKJ2tP5O5EZGljE4P+I2to KiXEexp0ClP0H6upp9ae0IkuxjDliTWuriAx/dXsBrREMNO1+vUKeHr4zU/XgZE1nVlq eHztT1FaMU6bTr0oNX+Znr0oAc1YToCQAHn7pm2vQ+nkhR0WdZ/8o2Za9KXSGBHNDfbp 8QX20biJPN6istySXs35+CI7aitvVTW+6lbbfU8zRWSQ42+MDa6UhnC+qbMhEvzEU/WH N6kv6VOne0dV9QSJ4ijL7rjru85A0EfVYvYTTvToE36Rdj74cCMN9FxmHldK6wKVtRwj 7lEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=H5bI+iOB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f187si557175oia.218.2020.02.10.10.43.39; Mon, 10 Feb 2020 10:43:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=H5bI+iOB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727548AbgBJSnc (ORCPT + 99 others); Mon, 10 Feb 2020 13:43:32 -0500 Received: from mail-wr1-f73.google.com ([209.85.221.73]:35615 "EHLO mail-wr1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727363AbgBJSnb (ORCPT ); Mon, 10 Feb 2020 13:43:31 -0500 Received: by mail-wr1-f73.google.com with SMTP id 50so5494875wrc.2 for ; Mon, 10 Feb 2020 10:43:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=QdVP7VsBJw+IixbDmWdM2Gp9NWKsZNR2FStw5cLegFk=; b=H5bI+iOBhkjHISdrxSGgdjQRdd7F+P/dxQ+5IGzxVJUok034EzrZnMegEYlIdtkoGn Tul56OPNJGaC4SqHNIta9FtzYTH9xaVamX+DWDR9Fye6fnkIiRykVBkc2Lj2MNS82qNH +wn/xWSoW9LlopgOhe9iRxeFRuFGQte9+Vzk3Fr/nRXXvvdCBclfpKvLDrnrSxEzBWat kl173BTi2ZcIqpTSjRh29W4ICWh0XYuokUeKY6ns4X1AZtpPwZPYRCNJhWhaLazkOuuR mlSq4FG+AvBL/LQTjkWi9qe0Z4RrZ61LCBBwblp93rIxJ/xZ5aD4kahKeIdvlNI3pKKY 6LAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=QdVP7VsBJw+IixbDmWdM2Gp9NWKsZNR2FStw5cLegFk=; b=lBMwlNc2e4mAIuriKDqgjBMjZoYq4W66R63/b7W8q9kEqsAs9y2ly0O/Z+qlovHFfy k4MIrVZMrG2nSlzrcLuNQVy71oUvbPPPV5NK3HYt+L32Q2L8b0+9/0QN5g2Xv6fT48HM /TixdJieZB6mKOxxSG1ffWi9h3R/1FB581F460m0uEA2dgEtfEp5cxLaqNmiGQBNOQbn Dj2fj4rF6oQxhrvWc9kbUbbUvIp19uqpNbBA7isE10kTq0b+f7Fi/lFLBAopBjr0ZQLe 7No9A/VmWblyARSBiRxUkd8N/9x1lhDqijjwTyZCMXqHmo3ZiqP+EmBP8/BoX/U9GNEG zSew== X-Gm-Message-State: APjAAAVugHIcOI5nHT4kyPBOYBI9oIFih5uRm3UP6i3x1TgYMzhBT54Q SwUfJ5C0HYA4QRo65C2ur+I5Is6N4A== X-Received: by 2002:adf:e38f:: with SMTP id e15mr3520748wrm.271.1581360209995; Mon, 10 Feb 2020 10:43:29 -0800 (PST) Date: Mon, 10 Feb 2020 19:43:13 +0100 Message-Id: <20200210184317.233039-1-elver@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.25.0.341.g760bfbb309-goog Subject: [PATCH 1/5] kcsan: Move interfaces that affects checks to kcsan-checks.h From: Marco Elver To: elver@google.com Cc: paulmck@kernel.org, andreyknvl@google.com, glider@google.com, dvyukov@google.com, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This moves functions that affect state changing the behaviour of kcsan_check_access() to kcsan-checks.h. Since these are likely used with kcsan_check_access() it makes more sense to have them in kcsan-checks.h, to avoid including all of 'include/linux/kcsan.h'. No functional change intended. Signed-off-by: Marco Elver --- include/linux/kcsan-checks.h | 48 ++++++++++++++++++++++++++++++++++-- include/linux/kcsan.h | 41 ------------------------------ 2 files changed, 46 insertions(+), 43 deletions(-) diff --git a/include/linux/kcsan-checks.h b/include/linux/kcsan-checks.h index cf6961794e9a1..8675411c8dbcd 100644 --- a/include/linux/kcsan-checks.h +++ b/include/linux/kcsan-checks.h @@ -32,10 +32,54 @@ */ void __kcsan_check_access(const volatile void *ptr, size_t size, int type); -#else +/** + * kcsan_nestable_atomic_begin - begin nestable atomic region + * + * Accesses within the atomic region may appear to race with other accesses but + * should be considered atomic. + */ +void kcsan_nestable_atomic_begin(void); + +/** + * kcsan_nestable_atomic_end - end nestable atomic region + */ +void kcsan_nestable_atomic_end(void); + +/** + * kcsan_flat_atomic_begin - begin flat atomic region + * + * Accesses within the atomic region may appear to race with other accesses but + * should be considered atomic. + */ +void kcsan_flat_atomic_begin(void); + +/** + * kcsan_flat_atomic_end - end flat atomic region + */ +void kcsan_flat_atomic_end(void); + +/** + * kcsan_atomic_next - consider following accesses as atomic + * + * Force treating the next n memory accesses for the current context as atomic + * operations. + * + * @n number of following memory accesses to treat as atomic. + */ +void kcsan_atomic_next(int n); + +#else /* CONFIG_KCSAN */ + static inline void __kcsan_check_access(const volatile void *ptr, size_t size, int type) { } -#endif + +static inline void kcsan_nestable_atomic_begin(void) { } +static inline void kcsan_nestable_atomic_end(void) { } +static inline void kcsan_flat_atomic_begin(void) { } +static inline void kcsan_flat_atomic_end(void) { } +static inline void kcsan_atomic_next(int n) { } + +#endif /* CONFIG_KCSAN */ /* * kcsan_*: Only calls into the runtime when the particular compilation unit has diff --git a/include/linux/kcsan.h b/include/linux/kcsan.h index 1019e3a2c6897..7a614ca558f65 100644 --- a/include/linux/kcsan.h +++ b/include/linux/kcsan.h @@ -56,52 +56,11 @@ void kcsan_disable_current(void); */ void kcsan_enable_current(void); -/** - * kcsan_nestable_atomic_begin - begin nestable atomic region - * - * Accesses within the atomic region may appear to race with other accesses but - * should be considered atomic. - */ -void kcsan_nestable_atomic_begin(void); - -/** - * kcsan_nestable_atomic_end - end nestable atomic region - */ -void kcsan_nestable_atomic_end(void); - -/** - * kcsan_flat_atomic_begin - begin flat atomic region - * - * Accesses within the atomic region may appear to race with other accesses but - * should be considered atomic. - */ -void kcsan_flat_atomic_begin(void); - -/** - * kcsan_flat_atomic_end - end flat atomic region - */ -void kcsan_flat_atomic_end(void); - -/** - * kcsan_atomic_next - consider following accesses as atomic - * - * Force treating the next n memory accesses for the current context as atomic - * operations. - * - * @n number of following memory accesses to treat as atomic. - */ -void kcsan_atomic_next(int n); - #else /* CONFIG_KCSAN */ static inline void kcsan_init(void) { } static inline void kcsan_disable_current(void) { } static inline void kcsan_enable_current(void) { } -static inline void kcsan_nestable_atomic_begin(void) { } -static inline void kcsan_nestable_atomic_end(void) { } -static inline void kcsan_flat_atomic_begin(void) { } -static inline void kcsan_flat_atomic_end(void) { } -static inline void kcsan_atomic_next(int n) { } #endif /* CONFIG_KCSAN */ -- 2.25.0.341.g760bfbb309-goog