diff --git a/kernel/cgroup/freezer.c b/kernel/cgroup/freezer.c index 6c18854bff34..d302f265917c 100644 --- a/kernel/cgroup/freezer.c +++ b/kernel/cgroup/freezer.c @@ -178,7 +178,8 @@ static void cgroup_do_freeze(struct cgroup *cgrp, bool freeze, u64 ts_nsec) lockdep_assert_held(&cgroup_mutex); - spin_lock_irq(&css_set_lock); + local_irq_disable(); + spin_lock(&css_set_lock); write_seqcount_begin(&cgrp->freezer.freeze_seq); if (freeze) { set_bit(CGRP_FREEZE, &cgrp->flags); @@ -189,7 +190,8 @@ static void cgroup_do_freeze(struct cgroup *cgrp, bool freeze, u64 ts_nsec) cgrp->freezer.freeze_start_nsec); } write_seqcount_end(&cgrp->freezer.freeze_seq); - spin_unlock_irq(&css_set_lock); + spin_unlock(&css_set_lock); + local_irq_enable(); if (freeze) TRACE_CGROUP_PATH(freeze, cgrp);