aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-02-05 13:30:29 -0500
committerPaul Mackerras <paulus@samba.org>2007-02-08 00:08:39 -0500
commit1ed2ddf380e19dafeec2150ca709ef7f4a67cd21 (patch)
treeda2b2eb34a98fdefaee17ec7e35136cff9f65a03
parent92d4dda3332577bc2228b8d436f3d2796c59a520 (diff)
[POWERPC] windfarm: don't die on suspend thread signal
When the windfarm thread gets a suspend signal it will die instead of freezing. This fixes it. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--drivers/macintosh/windfarm_core.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/macintosh/windfarm_core.c b/drivers/macintosh/windfarm_core.c
index e947af982f93..94c117ef20c1 100644
--- a/drivers/macintosh/windfarm_core.c
+++ b/drivers/macintosh/windfarm_core.c
@@ -94,8 +94,6 @@ static int wf_thread_func(void *data)
94 DBG("wf: thread started\n"); 94 DBG("wf: thread started\n");
95 95
96 while(!kthread_should_stop()) { 96 while(!kthread_should_stop()) {
97 try_to_freeze();
98
99 if (time_after_eq(jiffies, next)) { 97 if (time_after_eq(jiffies, next)) {
100 wf_notify(WF_EVENT_TICK, NULL); 98 wf_notify(WF_EVENT_TICK, NULL);
101 if (wf_overtemp) { 99 if (wf_overtemp) {
@@ -118,8 +116,8 @@ static int wf_thread_func(void *data)
118 if (delay <= HZ) 116 if (delay <= HZ)
119 schedule_timeout_interruptible(delay); 117 schedule_timeout_interruptible(delay);
120 118
121 /* there should be no signal, but oh well */ 119 /* there should be no non-suspend signal, but oh well */
122 if (signal_pending(current)) { 120 if (signal_pending(current) && !try_to_freeze()) {
123 printk(KERN_WARNING "windfarm: thread got sigl !\n"); 121 printk(KERN_WARNING "windfarm: thread got sigl !\n");
124 break; 122 break;
125 } 123 }