From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754486AbbKWXHF (ORCPT ); Mon, 23 Nov 2015 18:07:05 -0500 Received: from e37.co.us.ibm.com ([32.97.110.158]:41733 "EHLO e37.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754340AbbKWXHB (ORCPT ); Mon, 23 Nov 2015 18:07:01 -0500 X-IBM-Helo: d03dlp01.boulder.ibm.com X-IBM-MailFrom: paulmck@linux.vnet.ibm.com X-IBM-RcptTo: linux-doc@vger.kernel.org;linux-kernel@vger.kernel.org Date: Mon, 23 Nov 2015 15:07:26 -0800 From: "Paul E. McKenney" To: Chris Metcalf Cc: Jonathan Corbet , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] Documentation/memory-barriers.txt: fix ACCESS_ONCE thinko Message-ID: <20151123230726.GM26643@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <1448316257-18246-1-git-send-email-cmetcalf@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1448316257-18246-1-git-send-email-cmetcalf@ezchip.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15112323-0025-0000-0000-00001F02FAF6 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 23, 2015 at 05:04:17PM -0500, Chris Metcalf wrote: > In commit 2ecf810121c7 ("Documentation/memory-barriers.txt: Add > needed ACCESS_ONCE() calls to memory-barriers.txt") the statement > "Q = P" was converted to "ACCESS_ONCE(Q) = P". This should have > been "Q = ACCESS_ONCE(P)". It later became "WRITE_ONCE(Q, P)". > This doesn't match the following text, which is "Q = LOAD P". > Change the statement to be "Q = READ_ONCE(P)". > > Signed-off-by: Chris Metcalf Good eyes! Queued for v4.5. Thanx, Paul > --- > Documentation/memory-barriers.txt | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt > index aef9487303d0..85304ebd187c 100644 > --- a/Documentation/memory-barriers.txt > +++ b/Documentation/memory-barriers.txt > @@ -194,7 +194,7 @@ There are some minimal guarantees that may be expected of a CPU: > (*) On any given CPU, dependent memory accesses will be issued in order, with > respect to itself. This means that for: > > - WRITE_ONCE(Q, P); smp_read_barrier_depends(); D = READ_ONCE(*Q); > + Q = READ_ONCE(P); smp_read_barrier_depends(); D = READ_ONCE(*Q); > > the CPU will issue the following memory operations: > > @@ -202,9 +202,9 @@ There are some minimal guarantees that may be expected of a CPU: > > and always in that order. On most systems, smp_read_barrier_depends() > does nothing, but it is required for DEC Alpha. The READ_ONCE() > - and WRITE_ONCE() are required to prevent compiler mischief. Please > - note that you should normally use something like rcu_dereference() > - instead of open-coding smp_read_barrier_depends(). > + is required to prevent compiler mischief. Please note that you > + should normally use something like rcu_dereference() instead of > + open-coding smp_read_barrier_depends(). > > (*) Overlapping loads and stores within a particular CPU will appear to be > ordered within that CPU. This means that for: > -- > 2.1.2 >