Messages in this thread | | | Date | Tue, 21 Oct 2008 09:16:29 +0200 | From | Cedric Le Goater <> | Subject | Re: [PATCH 1/4] freezer_cg: fix improper BUG_ON() causing oops |
| |
Li Zefan wrote: > The BUG_ON() should be protected by freezer->lock, otherwise it > can be triggered easily when a task has been unfreezed but the > corresponding cgroup hasn't been changed to FROZEN state.
yes. thanks,
Acked-by: Cedric Le Goater <clg@fr.ibm.com>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> > --- > kernel/cgroup_freezer.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c > index e950569..7f54d1c 100644 > --- a/kernel/cgroup_freezer.c > +++ b/kernel/cgroup_freezer.c > @@ -190,8 +190,9 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task) > freezer = task_freezer(task); > task_unlock(task); > > - BUG_ON(freezer->state == CGROUP_FROZEN); > spin_lock_irq(&freezer->lock); > + BUG_ON(freezer->state == CGROUP_FROZEN); > + > /* Locking avoids race with FREEZING -> THAWED transitions. */ > if (freezer->state == CGROUP_FREEZING) > freeze_task(task, true);
| |