diff options
Diffstat (limited to 'mm/percpu.c')
| -rw-r--r-- | mm/percpu.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/mm/percpu.c b/mm/percpu.c index f5b2c2ea5a54..4199a0604c32 100644 --- a/mm/percpu.c +++ b/mm/percpu.c @@ -1635,7 +1635,7 @@ static bool pcpu_memcg_pre_alloc_hook(size_t size, gfp_t gfp,  	if (!objcg)  		return true; -	if (obj_cgroup_charge(objcg, gfp, size * num_possible_cpus())) { +	if (obj_cgroup_charge(objcg, gfp, pcpu_obj_full_size(size))) {  		obj_cgroup_put(objcg);  		return false;  	} @@ -1656,10 +1656,10 @@ static void pcpu_memcg_post_alloc_hook(struct obj_cgroup *objcg,  		rcu_read_lock();  		mod_memcg_state(obj_cgroup_memcg(objcg), MEMCG_PERCPU_B, -				size * num_possible_cpus()); +				pcpu_obj_full_size(size));  		rcu_read_unlock();  	} else { -		obj_cgroup_uncharge(objcg, size * num_possible_cpus()); +		obj_cgroup_uncharge(objcg, pcpu_obj_full_size(size));  		obj_cgroup_put(objcg);  	}  } @@ -1676,11 +1676,11 @@ static void pcpu_memcg_free_hook(struct pcpu_chunk *chunk, int off, size_t size)  		return;  	chunk->obj_cgroups[off >> PCPU_MIN_ALLOC_SHIFT] = NULL; -	obj_cgroup_uncharge(objcg, size * num_possible_cpus()); +	obj_cgroup_uncharge(objcg, pcpu_obj_full_size(size));  	rcu_read_lock();  	mod_memcg_state(obj_cgroup_memcg(objcg), MEMCG_PERCPU_B, -			-(size * num_possible_cpus())); +			-pcpu_obj_full_size(size));  	rcu_read_unlock();  	obj_cgroup_put(objcg);  |