Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp5099910ybv; Tue, 11 Feb 2020 09:09:26 -0800 (PST) X-Google-Smtp-Source: APXvYqwcHzCWEPkGEMT0BK0rdhleQ5dTIsnbkXP4IRpDwH9rEDY2Eo4550NxZTfD9U9e7zin4a7d X-Received: by 2002:aca:4c9:: with SMTP id 192mr3674112oie.105.1581440966651; Tue, 11 Feb 2020 09:09:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581440966; cv=none; d=google.com; s=arc-20160816; b=x+k1ziYw/u+lb+HE+18FlnmlylPl8A+z0BsnJHdm77c3KQ5qN8+2wWlVRbjfJXGqQu fbabIlo/kL7+tbADZWrocJuoIqiu/fWXk9OapWwlffsbxaLVHKJ+B3nnTwNIfCD47vNj KZarlZJjlEp5ubw7r5clAXp5KmmolLm2O5U8MQ4J2BG2lTGepWisPMAyb3J9eKWFjTHb 2iHyW33imB268HktvDbpuLqs0ZtvkihIeAhiqfseTo8AtFga+9JE6+79Km8vsiD/tURO k5i/Z9lJCc3hN6/Zr9sHxzXZiGxk7IeJt5jcftNnyEK9Wo+RNvSo1+d1GJ49AfvNeS6x LGbA== 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=fPyPj6YXKlNnOn1twoWGjqPJDWM/gm79Q9ZakEnsr3Y=; b=BBG7ls1DMw/gBJkimuRhxqbTQ1iTG6gzzSJaECeyOe1Lpn5e8UbbwtRHYq/xxLYMQW rHN3+QsMyRSNpqQNwT2cHqhQ+teS1w5Jlf40FG5aRRmfo5EQ8xX0edBrA4/zpkGVV0C9 P4HHOqGwV1RbQohT+J/RAZVFkXhhuC+0OfRiTj7SsRxI5UIrBUFb8gFqPM+UrOLE0muH jkE37F1Da5GU3XhW3csFpoTk1VOVeFqCy7/+yNHKJ2deKLokJFrENpn13rpcqHvjlZeA sHlVt7df8b1c4RCzidewfBlrASdgf2urG8FTAXjRnmwk4YiJ6XgjirTeTZbjOXzdWRYR 78Gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Wi8bgarS; 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 25si1958396oiz.230.2020.02.11.09.09.01; Tue, 11 Feb 2020 09:09:26 -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=Wi8bgarS; 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 S1730671AbgBKQFw (ORCPT + 99 others); Tue, 11 Feb 2020 11:05:52 -0500 Received: from mail-wr1-f74.google.com ([209.85.221.74]:36543 "EHLO mail-wr1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729905AbgBKQFw (ORCPT ); Tue, 11 Feb 2020 11:05:52 -0500 Received: by mail-wr1-f74.google.com with SMTP id t6so7160884wru.3 for ; Tue, 11 Feb 2020 08:05:50 -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=fPyPj6YXKlNnOn1twoWGjqPJDWM/gm79Q9ZakEnsr3Y=; b=Wi8bgarSTrgQE0LHOAgjWN5y+UOmdZAXDCDDqS4Xl//tm/ab2PRuBL+m+ZV4fEuGCT LBN+1P+92h5nmEcvgxOxoo0J3risVqx7nriYaWeZrizVUMlibdBHxh2SLWpPcjgA9EFC e9AHZRbAygFp3t26xwIPhIV7tPHVIao0eYYBgRG2+5j1UYd+bwZLI0WmgX8vgQuEJd9p TLHUNgZ2CtFhMl6JVfeSrIsTZZNJDwVp/UQLzhwFtMxhkg4/f+Kt4I7dqIAPCcs3ivVd MxoRdEHczXPfymaT7lQVrgHnryh1BButaQ/AnXMhpC32R9JafHwqwtfqY+IqmK9ALjEy 7+7A== 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=fPyPj6YXKlNnOn1twoWGjqPJDWM/gm79Q9ZakEnsr3Y=; b=K34xUf9EOocc+2EbPJtLaznotXt33uJseolmYLIrWGNR9tMcsuc3AZO9hoIQSycLc8 qplVxNE/SsMiAPAIpQqgyfgLXWwctSuI8dVjwVpWdgqvdGLKrH2P2G4nYJz/BhxtFShH M9bUUQPUcqKi9bg1NbzxLkK2eZsLMTdBq3h6NpeJpU9ReNrnWSHagQtKFO3NspZzc2Kc Bs0ObyP+bM+7iNjhOLsb2BQhKheC/UukMiPE19IFsC4S/jOSn4GJyLEg1FVwTLDWI86L fUYT6IznyLE7y3JttT5e58OCJTVGYM2z7bmF+8+DPqvR0Ayicqqf45Dbgf1xLxA2S1hm wqrw== X-Gm-Message-State: APjAAAViANeAewnNp69n13AZF+UGTtN9lCvq5VdTqWiQPhhhkmuA170H QOSIt5eCpt8ZRoLKbnb1GslT4cLUcw== X-Received: by 2002:a5d:474d:: with SMTP id o13mr8979251wrs.309.1581437149565; Tue, 11 Feb 2020 08:05:49 -0800 (PST) Date: Tue, 11 Feb 2020 17:04:19 +0100 Message-Id: <20200211160423.138870-1-elver@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.25.0.225.g125e21ebc7-goog Subject: [PATCH v2 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.225.g125e21ebc7-goog