diff options
-rw-r--r-- | mm/memcontrol.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 07908ea954b6..c31bc40a5827 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -2795,14 +2795,6 @@ static void __mem_cgroup_commit_charge(struct mem_cgroup *memcg, | |||
2795 | } | 2795 | } |
2796 | 2796 | ||
2797 | pc->mem_cgroup = memcg; | 2797 | pc->mem_cgroup = memcg; |
2798 | /* | ||
2799 | * We access a page_cgroup asynchronously without lock_page_cgroup(). | ||
2800 | * Especially when a page_cgroup is taken from a page, pc->mem_cgroup | ||
2801 | * is accessed after testing USED bit. To make pc->mem_cgroup visible | ||
2802 | * before USED bit, we need memory barrier here. | ||
2803 | * See mem_cgroup_add_lru_list(), etc. | ||
2804 | */ | ||
2805 | smp_wmb(); | ||
2806 | SetPageCgroupUsed(pc); | 2798 | SetPageCgroupUsed(pc); |
2807 | 2799 | ||
2808 | if (lrucare) { | 2800 | if (lrucare) { |
@@ -3483,7 +3475,6 @@ void mem_cgroup_split_huge_fixup(struct page *head) | |||
3483 | for (i = 1; i < HPAGE_PMD_NR; i++) { | 3475 | for (i = 1; i < HPAGE_PMD_NR; i++) { |
3484 | pc = head_pc + i; | 3476 | pc = head_pc + i; |
3485 | pc->mem_cgroup = memcg; | 3477 | pc->mem_cgroup = memcg; |
3486 | smp_wmb();/* see __commit_charge() */ | ||
3487 | pc->flags = head_pc->flags & ~PCGF_NOCOPY_AT_SPLIT; | 3478 | pc->flags = head_pc->flags & ~PCGF_NOCOPY_AT_SPLIT; |
3488 | } | 3479 | } |
3489 | __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS_HUGE], | 3480 | __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS_HUGE], |