aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-06-04 12:50:14 -0400
committerTejun Heo <tj@kernel.org>2014-06-04 12:50:47 -0400
commit315c5554c406fdad404a99dfefc931db0df80692 (patch)
tree2c186389e11d53f5341e6df98e3ca349b1ea899c
parent4fb6e25049cb6fa0accc7f1b7c192b952fad7ac8 (diff)
parent0c36b390a546055b6815d4b93a2c9fed4d980ffb (diff)
Merge branch 'for-3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git into for-3.16
Pull percpu/for-3.15-fixes into percpu/for-3.16 to receive 0c36b390a546 ("percpu-refcount: fix usage of this_cpu_ops"). The merge doesn't produce any conflict but the automatic merge is still incorrect because 4fb6e25049cb ("percpu-refcount: implement percpu_ref_tryget()") added another use of __this_cpu_inc() which should also be converted to this_cpu_ince(). This commit pulls in percpu/for-3.15-fixes and converts the newly added __this_cpu_inc() to this_cpu_inc(). Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r--include/linux/percpu-refcount.h8
-rw-r--r--mm/percpu.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/include/linux/percpu-refcount.h b/include/linux/percpu-refcount.h
index dba35c411e8c..5d8920e23073 100644
--- a/include/linux/percpu-refcount.h
+++ b/include/linux/percpu-refcount.h
@@ -110,7 +110,7 @@ static inline void percpu_ref_get(struct percpu_ref *ref)
110 pcpu_count = ACCESS_ONCE(ref->pcpu_count); 110 pcpu_count = ACCESS_ONCE(ref->pcpu_count);
111 111
112 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) 112 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR))
113 __this_cpu_inc(*pcpu_count); 113 this_cpu_inc(*pcpu_count);
114 else 114 else
115 atomic_inc(&ref->count); 115 atomic_inc(&ref->count);
116 116
@@ -136,7 +136,7 @@ static inline bool percpu_ref_tryget(struct percpu_ref *ref)
136 pcpu_count = ACCESS_ONCE(ref->pcpu_count); 136 pcpu_count = ACCESS_ONCE(ref->pcpu_count);
137 137
138 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) { 138 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) {
139 __this_cpu_inc(*pcpu_count); 139 this_cpu_inc(*pcpu_count);
140 ret = true; 140 ret = true;
141 } else { 141 } else {
142 ret = atomic_inc_not_zero(&ref->count); 142 ret = atomic_inc_not_zero(&ref->count);
@@ -171,7 +171,7 @@ static inline bool percpu_ref_tryget_live(struct percpu_ref *ref)
171 pcpu_count = ACCESS_ONCE(ref->pcpu_count); 171 pcpu_count = ACCESS_ONCE(ref->pcpu_count);
172 172
173 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) { 173 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) {
174 __this_cpu_inc(*pcpu_count); 174 this_cpu_inc(*pcpu_count);
175 ret = true; 175 ret = true;
176 } 176 }
177 177
@@ -196,7 +196,7 @@ static inline void percpu_ref_put(struct percpu_ref *ref)
196 pcpu_count = ACCESS_ONCE(ref->pcpu_count); 196 pcpu_count = ACCESS_ONCE(ref->pcpu_count);
197 197
198 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR)) 198 if (likely(REF_STATUS(pcpu_count) == PCPU_REF_PTR))
199 __this_cpu_dec(*pcpu_count); 199 this_cpu_dec(*pcpu_count);
200 else if (unlikely(atomic_dec_and_test(&ref->count))) 200 else if (unlikely(atomic_dec_and_test(&ref->count)))
201 ref->release(ref); 201 ref->release(ref);
202 202
diff --git a/mm/percpu.c b/mm/percpu.c
index 63e24fb4387b..2ddf9a990dbd 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -610,7 +610,7 @@ static struct pcpu_chunk *pcpu_alloc_chunk(void)
610 chunk->map = pcpu_mem_zalloc(PCPU_DFL_MAP_ALLOC * 610 chunk->map = pcpu_mem_zalloc(PCPU_DFL_MAP_ALLOC *
611 sizeof(chunk->map[0])); 611 sizeof(chunk->map[0]));
612 if (!chunk->map) { 612 if (!chunk->map) {
613 kfree(chunk); 613 pcpu_mem_free(chunk, pcpu_chunk_struct_size);
614 return NULL; 614 return NULL;
615 } 615 }
616 616