Merge branch 'for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu

Pull percpu changes from Tejun Heo:
 "Two trivial changes - addition of WARN_ONCE() in lib/percpu-refcount.c
  and use of VMALLOC_TOTAL instead of END - START in percpu.c"

* 'for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
  percpu: use VMALLOC_TOTAL instead of VMALLOC_END - VMALLOC_START
  percpu-refcount: Add a WARN() for ref going negative
This commit is contained in:
Linus Torvalds 2014-01-21 17:48:41 -08:00
commit 5cb7398caf
2 changed files with 5 additions and 2 deletions

View File

@ -120,6 +120,9 @@ static void percpu_ref_kill_rcu(struct rcu_head *rcu)
atomic_add((int) count - PCPU_COUNT_BIAS, &ref->count); atomic_add((int) count - PCPU_COUNT_BIAS, &ref->count);
WARN_ONCE(atomic_read(&ref->count) <= 0, "percpu ref <= 0 (%i)",
atomic_read(&ref->count));
/* @ref is viewed as dead on all CPUs, send out kill confirmation */ /* @ref is viewed as dead on all CPUs, send out kill confirmation */
if (ref->confirm_kill) if (ref->confirm_kill)
ref->confirm_kill(ref); ref->confirm_kill(ref);

View File

@ -1686,10 +1686,10 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
max_distance += ai->unit_size; max_distance += ai->unit_size;
/* warn if maximum distance is further than 75% of vmalloc space */ /* warn if maximum distance is further than 75% of vmalloc space */
if (max_distance > (VMALLOC_END - VMALLOC_START) * 3 / 4) { if (max_distance > VMALLOC_TOTAL * 3 / 4) {
pr_warning("PERCPU: max_distance=0x%zx too large for vmalloc " pr_warning("PERCPU: max_distance=0x%zx too large for vmalloc "
"space 0x%lx\n", max_distance, "space 0x%lx\n", max_distance,
(unsigned long)(VMALLOC_END - VMALLOC_START)); VMALLOC_TOTAL);
#ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK #ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK
/* and fail if we have fallback */ /* and fail if we have fallback */
rc = -EINVAL; rc = -EINVAL;