if (WARN_ONCE(BAD_STAT_IDX(i), "%s: missing stat item %d\n", __func__, idx))
                return;
 
+       memcg_stats_lock();
        __this_cpu_add(memcg->vmstats_percpu->state[i], val);
        val = memcg_state_val_in_pages(idx, val);
        memcg_rstat_updated(memcg, val);
        trace_mod_memcg_state(memcg, idx, val);
+       memcg_stats_unlock();
 }
 
 #ifdef CONFIG_MEMCG_V1
 
                        memcg = get_mem_cgroup_from_objcg(old);
 
-                       mod_memcg_state(memcg, MEMCG_KMEM, -nr_pages);
+                       __mod_memcg_state(memcg, MEMCG_KMEM, -nr_pages);
                        memcg1_account_kmem(memcg, -nr_pages);
                        if (!mem_cgroup_is_root(memcg))
                                memcg_uncharge(memcg, nr_pages);