From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752192AbbCYJSl (ORCPT ); Wed, 25 Mar 2015 05:18:41 -0400 Received: from e06smtp12.uk.ibm.com ([195.75.94.108]:37352 "EHLO e06smtp12.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751365AbbCYJSh (ORCPT ); Wed, 25 Mar 2015 05:18:37 -0400 Message-ID: <55127D65.7060605@de.ibm.com> Date: Wed, 25 Mar 2015 10:18:29 +0100 From: Christian Borntraeger User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Michael Ellerman , linuxppc-dev@ozlabs.org CC: linux-kernel@vger.kernel.org, aneesh.kumar@in.ibm.com, akpm@linux-foundation.org, kirill.shutemov@linux.intel.com, aarcange@redhat.com, steve.capper@linaro.org, linux-mm@kvack.org, Jason Low , Linus Torvalds Subject: Re: [PATCH 5/6] mm/gup: Replace ACCESS_ONCE with READ_ONCE for STRICT_MM_TYPECHECKS References: <1427274719-25890-1-git-send-email-mpe@ellerman.id.au> <1427274719-25890-5-git-send-email-mpe@ellerman.id.au> In-Reply-To: <1427274719-25890-5-git-send-email-mpe@ellerman.id.au> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15032509-0009-0000-0000-0000039A3C41 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 25.03.2015 um 10:11 schrieb Michael Ellerman: > If STRICT_MM_TYPECHECKS is enabled the generic gup code fails to build > because we are using ACCESS_ONCE on non-scalar types. > > Convert all uses to READ_ONCE. There is a similar patch from Jason Low in Andrews patch. If that happens in 4.0-rc, we probably want to merge this before 4.0. > > Cc: akpm@linux-foundation.org > Cc: kirill.shutemov@linux.intel.com > Cc: aarcange@redhat.com > Cc: borntraeger@de.ibm.com > Cc: steve.capper@linaro.org > Cc: linux-mm@kvack.org > Signed-off-by: Michael Ellerman > --- > mm/gup.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/gup.c b/mm/gup.c > index a6e24e246f86..120c3adc843c 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -901,7 +901,7 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, > * > * for an example see gup_get_pte in arch/x86/mm/gup.c > */ > - pte_t pte = ACCESS_ONCE(*ptep); > + pte_t pte = READ_ONCE(*ptep); > struct page *page; > > /* > @@ -1191,7 +1191,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, > local_irq_save(flags); > pgdp = pgd_offset(mm, addr); > do { > - pgd_t pgd = ACCESS_ONCE(*pgdp); > + pgd_t pgd = READ_ONCE(*pgdp); > > next = pgd_addr_end(addr, end); > if (pgd_none(pgd)) >