hc
2023-11-07 f45e756958099c35d6afb746df1d40a1c6302cfc
kernel/kernel/cgroup/rstat.c
....@@ -149,8 +149,9 @@
149149 raw_spinlock_t *cpu_lock = per_cpu_ptr(&cgroup_rstat_cpu_lock,
150150 cpu);
151151 struct cgroup *pos = NULL;
152
+ unsigned long flags;
152153
153
- raw_spin_lock(cpu_lock);
154
+ raw_spin_lock_irqsave(cpu_lock, flags);
154155 while ((pos = cgroup_rstat_cpu_pop_updated(pos, cgrp, cpu))) {
155156 struct cgroup_subsys_state *css;
156157
....@@ -162,7 +163,7 @@
162163 css->ss->css_rstat_flush(css, cpu);
163164 rcu_read_unlock();
164165 }
165
- raw_spin_unlock(cpu_lock);
166
+ raw_spin_unlock_irqrestore(cpu_lock, flags);
166167
167168 /* if @may_sleep, play nice and yield if necessary */
168169 if (may_sleep && (need_resched() ||