[PATCH 02/10] windfarm: dont die on suspend thread signal

Johannes Berg
2007-02-05T18:30:29Z

[-- Attachment #1: windfarm-dont-die-on-signals.patch --]
[-- Type: text/plain, Size: 1085 bytes --]

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>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>

---
Please apply to -mm.

--- mb-wireless.orig/drivers/macintosh/windfarm_core.c 2007-02-05 14:24:06.344526864 +0100
+++ mb-wireless/drivers/macintosh/windfarm_core.c 2007-02-05 14:24:38.264526864 +0100
@@ -94,8 +94,6 @@ static int wf_thread_func(void *data)
DBG("wf: thread started\n");

while(!kthread_should_stop()) {
- try_to_freeze();
-
if (time_after_eq(jiffies, next)) {
wf_notify(WF_EVENT_TICK, NULL);
if (wf_overtemp) {
@@ -118,8 +116,8 @@ static int wf_thread_func(void *data)
if (delay <= HZ)
schedule_timeout_interruptible(delay);

- /* there should be no signal, but oh well */
- if (signal_pending(current)) {
+ /* 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;
}

--