Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp2328415ybv; Fri, 14 Feb 2020 16:30:35 -0800 (PST) X-Google-Smtp-Source: APXvYqw5zH4ARzjYF75Zo7BuC7qapjUyu7rZ9BTqaEjAQMCh5na8a7EjMNcrhRpyNOO3gLTODF2q X-Received: by 2002:a54:4e8d:: with SMTP id c13mr3627542oiy.27.1581726635252; Fri, 14 Feb 2020 16:30:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581726635; cv=none; d=google.com; s=arc-20160816; b=FjEeioPUV00+JM08nfKfGLz88L9xqcDahJAdaaYGnR3pvA0XLBtQ/AYETs8FFIRKPP BetH7DcCV8mah0PDu4FGk2y7iVxXBV77qewZR+czGijSsXz6kR19Dy3YrcqKTa1TUdtm 759qbwtol7l0HBCHsIEJCSnvq7Nacny1BakAsT1zMpz6ZwF+6An8u7HvZ3uqlZC9dooJ 305WNk0wJ0bfSVJfkENwt+I9xepoOgu/YaNGrbh+5ZBhh6+nbSK419CO/DF1k/OOE3p9 MAQOl1cVqehVqLz/n/LSB2gPzwKg3iStypgc5Z1WaEfMfbG/oKAyhGV2O8Y9/pnUepxZ ZV8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=/e22f5gyOv77Drb35THVPa5CeQbn2nS1ZPShto9JFfU=; b=emiNHWIIVZnWjr3yQdItWX5JrqtBfuPkEPov0eWG5kuKx79ikt73IK0GLx82d9ndbB TJnBWVX5nUXYySaOUMIIAYYtxfDTOq9sPy8Ywls7FD/84czVJMl6q1tEQmwN8hYMBwtT MF9wzEs0zB3RXkv3qQiA0RYGRJCH0yoBhjFrJbXpgfEYpnL8U6WGdapx6cJJ9GNFQDxf N/qRAD8BYitCzkZ0Akfyml27lwQ4PEWWxe1Wt/etHdsuyVEciJGo8OgN3HHOrO4R2e29 Op1wAuUJTwk6x+6fza3qqd6BbEU5m4U177LMgc9G4bNHz4ecpVgU6u+VX0BE4ARcu8lK WGjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=cBc9XNaW; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y8si3429494oih.141.2020.02.14.16.30.23; Fri, 14 Feb 2020 16:30:35 -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=@kernel.org header.s=default header.b=cBc9XNaW; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727901AbgBOA3w (ORCPT + 99 others); Fri, 14 Feb 2020 19:29:52 -0500 Received: from mail.kernel.org ([198.145.29.99]:45546 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727567AbgBOA3v (ORCPT ); Fri, 14 Feb 2020 19:29:51 -0500 Received: from paulmck-ThinkPad-P72.c.hoisthospitality.com (unknown [62.84.152.189]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 65FBD207FF; Sat, 15 Feb 2020 00:29:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581726590; bh=XdMJOms8RbFN2DS7z+iHuxwTOky+fnSYiXiwhbUyJSI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cBc9XNaWmAo84NIbK+z57M9ndzCt02Wr0Tq8K5wUjl1p0dCbCSvp5PPa/7vja6j5b LA5gIhZnfuijWpaXS1RfjkBZ2DAmfJ5lSZE51/3orm15eh++gR4Vbo8KHhk4ltgjn0 YhfbGVG5X+T28xIjTXMOaZet9iq5nquRbvrMI8JU= From: paulmck@kernel.org To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@fb.com, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org, "Paul E. McKenney" Subject: [PATCH tip/core/rcu 4/4] srcu: Add READ_ONCE() to srcu_struct ->srcu_gp_seq load Date: Fri, 14 Feb 2020 16:29:32 -0800 Message-Id: <20200215002932.15976-4-paulmck@kernel.org> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200215002907.GA15895@paulmck-ThinkPad-P72> References: <20200215002907.GA15895@paulmck-ThinkPad-P72> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Paul E. McKenney" The load of the srcu_struct structure's ->srcu_gp_seq field in srcu_funnel_gp_start() is lockless, so this commit adds the requisite READ_ONCE(). This data race was reported by KCSAN. Signed-off-by: Paul E. McKenney --- kernel/rcu/srcutree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index 119a373..90ab475 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -678,7 +678,7 @@ static void srcu_funnel_gp_start(struct srcu_struct *ssp, struct srcu_data *sdp, /* If grace period not already done and none in progress, start it. */ if (!rcu_seq_done(&ssp->srcu_gp_seq, s) && - rcu_seq_state(ssp->srcu_gp_seq) == SRCU_STATE_IDLE) { + rcu_seq_state(READ_ONCE(ssp->srcu_gp_seq)) == SRCU_STATE_IDLE) { WARN_ON_ONCE(ULONG_CMP_GE(ssp->srcu_gp_seq, ssp->srcu_gp_seq_needed)); srcu_gp_start(ssp); if (likely(srcu_init_done)) -- 2.9.5