this_cpu_ptr() emits a warning when used without preemption disabled -
harmless in this case, as we have other locking where
bch2_acc_percpu_u64s() is used.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
*/
u64 *bch2_acc_percpu_u64s(u64 __percpu *p, unsigned nr)
{
- u64 *ret = this_cpu_ptr(p);
+ u64 *ret;
int cpu;
+ /* access to pcpu vars has to be blocked by other locking */
+ preempt_disable();
+ ret = this_cpu_ptr(p);
+ preempt_enable();
+
for_each_possible_cpu(cpu) {
u64 *i = per_cpu_ptr(p, cpu);