Re: [PATCH pm] freezer: fix wait_event_freezable/__thaw_task races

From: Tejun Heo
Date: Wed Nov 02 2011 - 20:44:06 EST


On Thu, Nov 03, 2011 at 01:20:41AM +0100, Rafael J. Wysocki wrote:
> On Tuesday, November 01, 2011, Tejun Heo wrote:
> > From: Oleg Nesterov <oleg@xxxxxxxxxx>
> >
> > wait_event_freezable() and friends stop the waiting if try_to_freeze()
> > fails. This is not right, we can race with __thaw_task() and in this
> > case
> >
> > - wait_event_freezable() returns the wrong ERESTARTSYS
> >
> > - wait_event_freezable_timeout() can return the positive
> > value while condition == F
> >
> > Change the code to always check __retval/condition before return.
> >
> > Note: with or without this patch the timeout logic looks strange,
> > probably we should recalc timeout if try_to_freeze() returns T.
> >
> > tj: Updated to apply to wait_event_freezekillable() too.
> >
> > Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
> > Acked-by: Tejun Heo <tj@xxxxxxxxxx>
>
> Applied to linux-pm/linux-next.

Just in case, this patch isn't correct with preceding patches (the
freezer update patchset), so should only be applied after them.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/