diff options
Diffstat (limited to 'lib/percpu-refcount.c')
-rw-r--r-- | lib/percpu-refcount.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c index 087f1a04f9bc..94e5b624de64 100644 --- a/lib/percpu-refcount.c +++ b/lib/percpu-refcount.c | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | static unsigned __percpu *pcpu_count_ptr(struct percpu_ref *ref) | 34 | static unsigned __percpu *pcpu_count_ptr(struct percpu_ref *ref) |
35 | { | 35 | { |
36 | return (unsigned __percpu *)((unsigned long)ref->pcpu_count & ~PCPU_REF_DEAD); | 36 | return (unsigned __percpu *)(ref->pcpu_count_ptr & ~PCPU_REF_DEAD); |
37 | } | 37 | } |
38 | 38 | ||
39 | /** | 39 | /** |
@@ -51,8 +51,8 @@ int percpu_ref_init(struct percpu_ref *ref, percpu_ref_func_t *release) | |||
51 | { | 51 | { |
52 | atomic_set(&ref->count, 1 + PCPU_COUNT_BIAS); | 52 | atomic_set(&ref->count, 1 + PCPU_COUNT_BIAS); |
53 | 53 | ||
54 | ref->pcpu_count = alloc_percpu(unsigned); | 54 | ref->pcpu_count_ptr = (unsigned long)alloc_percpu(unsigned); |
55 | if (!ref->pcpu_count) | 55 | if (!ref->pcpu_count_ptr) |
56 | return -ENOMEM; | 56 | return -ENOMEM; |
57 | 57 | ||
58 | ref->release = release; | 58 | ref->release = release; |
@@ -153,11 +153,10 @@ static void percpu_ref_kill_rcu(struct rcu_head *rcu) | |||
153 | void percpu_ref_kill_and_confirm(struct percpu_ref *ref, | 153 | void percpu_ref_kill_and_confirm(struct percpu_ref *ref, |
154 | percpu_ref_func_t *confirm_kill) | 154 | percpu_ref_func_t *confirm_kill) |
155 | { | 155 | { |
156 | WARN_ONCE((unsigned long)ref->pcpu_count & PCPU_REF_DEAD, | 156 | WARN_ONCE(ref->pcpu_count_ptr & PCPU_REF_DEAD, |
157 | "percpu_ref_kill() called more than once!\n"); | 157 | "percpu_ref_kill() called more than once!\n"); |
158 | 158 | ||
159 | ref->pcpu_count = (unsigned __percpu *) | 159 | ref->pcpu_count_ptr |= PCPU_REF_DEAD; |
160 | (((unsigned long) ref->pcpu_count)|PCPU_REF_DEAD); | ||
161 | ref->confirm_kill = confirm_kill; | 160 | ref->confirm_kill = confirm_kill; |
162 | 161 | ||
163 | call_rcu_sched(&ref->rcu, percpu_ref_kill_rcu); | 162 | call_rcu_sched(&ref->rcu, percpu_ref_kill_rcu); |