Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4477473pxb; Tue, 5 Oct 2021 04:04:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyOy76b8jPOJT07y8E2oBCr5JY3/7diDnDqMJ4oHKp1MGPbt5VOYCB8jKPbYsxau7qsiQf6 X-Received: by 2002:a17:906:aed1:: with SMTP id me17mr23981218ejb.474.1633431858478; Tue, 05 Oct 2021 04:04:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633431858; cv=none; d=google.com; s=arc-20160816; b=t/PTbaJkNJQMOJF0L1VBZNZpnrvXcz3FoI4qfHnlFkybHAeBbR7yPmRbEckppwl6jt HLB0OQyfjd2mSCHCq3XOWRlTjqnEmLrWv+ZYAPtRM8w4QNnD4xViKI1GaRGapCyWYSy6 iuPSEMjzAzakDoRCU4bRooTDR+CFE2enitCjpXp2k8CsMt5AA5prPk6ezs2iQ8kpkkOD XwzQ4CBaQVpCj05XJM/oJb46uL5Jx3rigvuDr24AgbOW+ugX91nWXDDC9pAHZWw/ufD1 hCcRnwF9FRW11h5t3SHw0TEg4PCLA5z1iw3ZSDaVO1bwmEDj7sAfgQtH2WQEIb2J7Ryy bzRA== 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:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=aJbTcuURS/chesQOBDsBj7S41hJcRc/zL/qDV/Um5us=; b=FY3eY3Y/jUjf7w/f45ArWXlE9azMUVEs2EXQJ6wTAGm6SDIJrmHe/6tJS/0GKfRZnv jc5TE65xcjzLzst1BqT6uv6s75X3T1XxjU+fYAsGaP5+q3Q2dqLHkLA/C/gtNkWQNlfX x7/ssFL6kRTItG3DgZemUsoVAsJRazH7CUgJzlRYU5b38aQAKWHH2cI41ogmKN/t/YR6 Bg1mxU6FQaIRQy7wmYEqRrrffRUJo1mE93uD8h7zntugjFsxDp3qhL9Wg94uuLOxCkN5 FcbiV11rlZZPNMfY5F8Jj7UG50Zj50lwS2cC7YLKf5Cnxp7mZQagvwLfVPlbvlg9BWjH Lfrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=BbV5uAK9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id ca23si23510264edb.585.2021.10.05.04.03.52; Tue, 05 Oct 2021 04:04:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=BbV5uAK9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S234559AbhJELDX (ORCPT + 99 others); Tue, 5 Oct 2021 07:03:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234658AbhJELDB (ORCPT ); Tue, 5 Oct 2021 07:03:01 -0400 Received: from mail-qt1-x84a.google.com (mail-qt1-x84a.google.com [IPv6:2607:f8b0:4864:20::84a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0C38C0613AB for ; Tue, 5 Oct 2021 04:00:23 -0700 (PDT) Received: by mail-qt1-x84a.google.com with SMTP id t9-20020a05622a180900b002a71f83a1cdso11336250qtc.17 for ; Tue, 05 Oct 2021 04:00:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=aJbTcuURS/chesQOBDsBj7S41hJcRc/zL/qDV/Um5us=; b=BbV5uAK97obmNYDliUtqw0GOKWU8gRY8670jg0FGkfCOl/BDOBUmvDlO6y+6Nw4Jgn CfJN7QglUerqcxhodLjEyBZShqp4ICKrf4W5xF34Vl5c5QKflyz98mLQU//FeWddOm2e p/uR5E2cuLHejLdL8vN8jRxSsC4BcY9UOkkNxSr0C7fJ7qv75CXtp4D3Ic92scHPNmif dD338wArlvfKbLVVOSM+Nw9cqI/cJgYIsB/FYIikM+8eanE27mb2CRogMrrq2fTAUK7N 5KvvRfLb6EijEfArLGnmjYZ5E3/gz/90hEH6UQiVZRzs8RZ5JrdlRULHMetclefDRlYT Tgxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=aJbTcuURS/chesQOBDsBj7S41hJcRc/zL/qDV/Um5us=; b=C54//KE/r93twGoGdzn9KxWzBq6e1Wqjyr35DWEkh9gknwoSFhpLywgIHWMEIz7fPu nvOYY0Hb2T1ndA8B3L43NKissYPkrXmKoWnLnMgUBF/fqkNaAulqKK8EwkF8EP1/BcWx G6ojTnMREThM7AhbonThhaBunfhWRubPJW+S9xXhcEIZJGU/4gHqLoqwFVD4l9cO0n7v keZ4L6V6pP/M8M3gplENTLlSi8yDdJBSppAUWvP5YJrj9UeDcbOqReV9ueba1DQs12Bm lzhn54hkB5EnnQ8IHE/6y6gstGYn8sQ9vV5606joMisxauj4V51LquSnOfmdP2oKlf1w Xi7g== X-Gm-Message-State: AOAM532rjYN12D9wIM7GOBmBmZ2i1bQYatGxCq5GNbOAMSYmx30TONWj BGJohzT0rAp59SL4fia4QIvn/0OwQg== X-Received: from elver.muc.corp.google.com ([2a00:79e0:15:13:e44f:5054:55f8:fcb8]) (user=elver job=sendgmr) by 2002:a05:6214:1022:: with SMTP id k2mr27294558qvr.53.1633431622928; Tue, 05 Oct 2021 04:00:22 -0700 (PDT) Date: Tue, 5 Oct 2021 12:58:59 +0200 In-Reply-To: <20211005105905.1994700-1-elver@google.com> Message-Id: <20211005105905.1994700-18-elver@google.com> Mime-Version: 1.0 References: <20211005105905.1994700-1-elver@google.com> X-Mailer: git-send-email 2.33.0.800.g4c38ced690-goog Subject: [PATCH -rcu/kcsan 17/23] asm-generic/bitops, kcsan: Add instrumentation for barriers From: Marco Elver To: elver@google.com, "Paul E . McKenney" Cc: Alexander Potapenko , Boqun Feng , Borislav Petkov , Dmitry Vyukov , Ingo Molnar , Josh Poimboeuf , Mark Rutland , Peter Zijlstra , Thomas Gleixner , Waiman Long , Will Deacon , kasan-dev@googlegroups.com, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adds the required KCSAN instrumentation for barriers of atomic bitops. Signed-off-by: Marco Elver --- include/asm-generic/bitops/instrumented-atomic.h | 3 +++ include/asm-generic/bitops/instrumented-lock.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/include/asm-generic/bitops/instrumented-atomic.h b/include/asm-generic/bitops/instrumented-atomic.h index 81915dcd4b4e..c90192b1c755 100644 --- a/include/asm-generic/bitops/instrumented-atomic.h +++ b/include/asm-generic/bitops/instrumented-atomic.h @@ -67,6 +67,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr) */ static inline bool test_and_set_bit(long nr, volatile unsigned long *addr) { + kcsan_mb(); instrument_atomic_read_write(addr + BIT_WORD(nr), sizeof(long)); return arch_test_and_set_bit(nr, addr); } @@ -80,6 +81,7 @@ static inline bool test_and_set_bit(long nr, volatile unsigned long *addr) */ static inline bool test_and_clear_bit(long nr, volatile unsigned long *addr) { + kcsan_mb(); instrument_atomic_read_write(addr + BIT_WORD(nr), sizeof(long)); return arch_test_and_clear_bit(nr, addr); } @@ -93,6 +95,7 @@ static inline bool test_and_clear_bit(long nr, volatile unsigned long *addr) */ static inline bool test_and_change_bit(long nr, volatile unsigned long *addr) { + kcsan_mb(); instrument_atomic_read_write(addr + BIT_WORD(nr), sizeof(long)); return arch_test_and_change_bit(nr, addr); } diff --git a/include/asm-generic/bitops/instrumented-lock.h b/include/asm-generic/bitops/instrumented-lock.h index 75ef606f7145..eb64bd4f11f3 100644 --- a/include/asm-generic/bitops/instrumented-lock.h +++ b/include/asm-generic/bitops/instrumented-lock.h @@ -22,6 +22,7 @@ */ static inline void clear_bit_unlock(long nr, volatile unsigned long *addr) { + kcsan_release(); instrument_atomic_write(addr + BIT_WORD(nr), sizeof(long)); arch_clear_bit_unlock(nr, addr); } @@ -37,6 +38,7 @@ static inline void clear_bit_unlock(long nr, volatile unsigned long *addr) */ static inline void __clear_bit_unlock(long nr, volatile unsigned long *addr) { + kcsan_release(); instrument_write(addr + BIT_WORD(nr), sizeof(long)); arch___clear_bit_unlock(nr, addr); } @@ -71,6 +73,7 @@ static inline bool test_and_set_bit_lock(long nr, volatile unsigned long *addr) static inline bool clear_bit_unlock_is_negative_byte(long nr, volatile unsigned long *addr) { + kcsan_release(); instrument_atomic_write(addr + BIT_WORD(nr), sizeof(long)); return arch_clear_bit_unlock_is_negative_byte(nr, addr); } -- 2.33.0.800.g4c38ced690-goog