[PATCH 5/6] mm/gup: Replace ACCESS_ONCE with READ_ONCE for STRICT_MM_TYPECHECKS

Christian Borntraeger borntraeger at de.ibm.com
Wed Mar 25 20:18:29 AEDT 2015


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 at linux-foundation.org
> Cc: kirill.shutemov at linux.intel.com
> Cc: aarcange at redhat.com
> Cc: borntraeger at de.ibm.com
> Cc: steve.capper at linaro.org
> Cc: linux-mm at kvack.org
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---
>  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))
> 



More information about the Linuxppc-dev mailing list