]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'percpu/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 16 Jan 2014 04:38:01 +0000 (15:38 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 16 Jan 2014 04:38:01 +0000 (15:38 +1100)
lib/percpu-refcount.c
mm/percpu.c

index 1a53d497a8c53ae460686af6107531c4161eae53..963b7034a51b6e43d058ca3b940b2d8cf491ec9f 100644 (file)
@@ -120,6 +120,9 @@ static void percpu_ref_kill_rcu(struct rcu_head *rcu)
 
        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 */
        if (ref->confirm_kill)
                ref->confirm_kill(ref);
index 0d10defe951e2e1ce7af63808c3af77d5f81d612..afbf352ae58041e2defbacdf433d26c2ff98975e 100644 (file)
@@ -1686,10 +1686,10 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
        max_distance += ai->unit_size;
 
        /* 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 "
                           "space 0x%lx\n", max_distance,
-                          (unsigned long)(VMALLOC_END - VMALLOC_START));
+                          VMALLOC_TOTAL);
 #ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK
                /* and fail if we have fallback */
                rc = -EINVAL;