mm: remove rest of ACCESS_ONCE() usages
authorJason Low <jason.low2@hp.com>
Wed, 15 Apr 2015 23:14:08 +0000 (16:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 15 Apr 2015 23:35:18 +0000 (16:35 -0700)
We converted some of the usages of ACCESS_ONCE to READ_ONCE in the mm/
tree since it doesn't work reliably on non-scalar types.

This patch removes the rest of the usages of ACCESS_ONCE, and use the new
READ_ONCE API for the read accesses.  This makes things cleaner, instead
of using separate/multiple sets of APIs.

Signed-off-by: Jason Low <jason.low2@hp.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Davidlohr Bueso <dave@stgolabs.net>
Acked-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/huge_memory.c
mm/internal.h
mm/ksm.c
mm/memcontrol.c
mm/memory.c
mm/mmap.c
mm/page_alloc.c
mm/rmap.c
mm/slub.c
mm/swap_state.c
mm/swapfile.c

index 4914e1b..1db93fb 100644 (file)
@@ -183,7 +183,7 @@ static struct page *get_huge_zero_page(void)
        struct page *zero_page;
 retry:
        if (likely(atomic_inc_not_zero(&huge_zero_refcount)))
-               return ACCESS_ONCE(huge_zero_page);
+               return READ_ONCE(huge_zero_page);
 
        zero_page = alloc_pages((GFP_TRANSHUGE | __GFP_ZERO) & ~__GFP_MOVABLE,
                        HPAGE_PMD_ORDER);
@@ -202,7 +202,7 @@ retry:
        /* We take additional reference here. It will be put back by shrinker */
        atomic_set(&huge_zero_refcount, 2);
        preempt_enable();
-       return ACCESS_ONCE(huge_zero_page);
+       return READ_ONCE(huge_zero_page);
 }
 
 static void put_huge_zero_page(void)
diff --cc mm/internal.h
Simple merge
diff --cc mm/ksm.c
Simple merge
diff --cc mm/memcontrol.c
Simple merge
diff --cc mm/memory.c
Simple merge
diff --cc mm/mmap.c
Simple merge
diff --cc mm/page_alloc.c
Simple merge
diff --cc mm/rmap.c
Simple merge
diff --cc mm/slub.c
Simple merge
diff --cc mm/swap_state.c
Simple merge
diff --cc mm/swapfile.c
Simple merge