[PATCH] windfarm: fix windfarm thread freezer interaction
Rafael J. Wysocki
rjw at sisk.pl
Wed Oct 24 06:17:35 EST 2007
On Tuesday, 23 October 2007 14:33, Johannes Berg wrote:
> When I fixed the windfarm freezer interaction first in commit
> 1ed2ddf380e19dafeec2150ca709ef7f4a67cd21, an earlier patch than the one
> I came up with after comments was committed. This has come back to haunt
> us now because commit d5d8c5976d6adeddb8208c240460411e2198b393 changed
> the freezer to no long send signals. Fix it by removing the windfarm
> thread's signal logic and restoring the original try_to_freeze().
>
> We could simply revert 1ed2ddf380e19dafeec2150ca709ef7f4a67cd21 now
> but I feel that the assertion that no signal is delivered to the
> windfarm thread needs not be there.
>
> Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
Acked-by: Rafael J. Wysocki <rjw at sisk.pl>
> ---
> drivers/macintosh/windfarm_core.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> --- linux-2.6-git.orig/drivers/macintosh/windfarm_core.c 2007-10-23 14:23:02.406437623 +0200
> +++ linux-2.6-git/drivers/macintosh/windfarm_core.c 2007-10-23 14:25:28.745447695 +0200
> @@ -94,7 +94,9 @@ static int wf_thread_func(void *data)
> DBG("wf: thread started\n");
>
> set_freezable();
> - while(!kthread_should_stop()) {
> + while (!kthread_should_stop()) {
> + try_to_freeze();
> +
> if (time_after_eq(jiffies, next)) {
> wf_notify(WF_EVENT_TICK, NULL);
> if (wf_overtemp) {
> @@ -116,12 +118,6 @@ static int wf_thread_func(void *data)
> delay = next - jiffies;
> if (delay <= HZ)
> schedule_timeout_interruptible(delay);
> -
> - /* there should be no non-suspend signal, but oh well */
> - if (signal_pending(current) && !try_to_freeze()) {
> - printk(KERN_WARNING "windfarm: thread got sigl !\n");
> - break;
> - }
> }
>
> DBG("wf: thread stopped\n");
>
>
>
>
More information about the Linuxppc-dev
mailing list