net: wireless: bcmdhd: Daemonize wl_event_handler
authorDmitry Shmidt <dimitrysh@google.com>
Mon, 30 Jan 2012 21:03:19 +0000 (13:03 -0800)
committerDmitry Shmidt <dimitrysh@google.com>
Tue, 31 Jan 2012 21:31:15 +0000 (13:31 -0800)
Daemonizing makes thread (besides other things) NON-FREEZABLE, and it will not
get fake signal on suspend to quicl down_interruptible()

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd_linux.c
drivers/net/wireless/bcmdhd/include/linuxver.h
drivers/net/wireless/bcmdhd/wl_cfg80211.c

index 53c507acb7bef72f73e506e06cd6953ea64124c7..f3c98a11669ba7425b40e7e4c4ca26ab731b7bee 100644 (file)
@@ -359,19 +359,6 @@ uint dhd_radio_up = 1;
 char iface_name[IFNAMSIZ] = {'\0'};
 module_param_string(iface_name, iface_name, IFNAMSIZ, 0);
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0))
-#define DAEMONIZE(a) daemonize(a); \
-       allow_signal(SIGKILL); \
-       allow_signal(SIGTERM);
-#else /* Linux 2.4 (w/o preemption patch) */
-#define RAISE_RX_SOFTIRQ() \
-       cpu_raise_softirq(smp_processor_id(), NET_RX_SOFTIRQ)
-#define DAEMONIZE(a) daemonize(); \
-       do { if (a) \
-               strncpy(current->comm, a, MIN(sizeof(current->comm), (strlen(a) + 1))); \
-       } while (0);
-#endif /* LINUX_VERSION_CODE  */
-
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0))
 #define BLOCKABLE()    (!in_atomic())
 #else
index e5189821b4cba8cca9bc8e5c1a09b175b93278aa..d269e66f7fb89cd929b5ab02e0f64b42f2637356 100644 (file)
@@ -511,6 +511,18 @@ typedef struct {
        (tsk_ctl)->thr_pid = -1; \
 }
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0))
+#define DAEMONIZE(a) daemonize(a); \
+       allow_signal(SIGKILL); \
+       allow_signal(SIGTERM);
+#else /* Linux 2.4 (w/o preemption patch) */
+#define RAISE_RX_SOFTIRQ() \
+       cpu_raise_softirq(smp_processor_id(), NET_RX_SOFTIRQ)
+#define DAEMONIZE(a) daemonize(); \
+       do { if (a) \
+               strncpy(current->comm, a, MIN(sizeof(current->comm), (strlen(a) + 1))); \
+       } while (0);
+#endif /* LINUX_VERSION_CODE  */
 
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31))
index 455c43c30cd0136378034674f966471e26a1a502..125888d028fa4a0da0e4db0bef88f383bb3dbfd7 100644 (file)
@@ -6135,6 +6135,9 @@ static s32 wl_event_handler(void *data)
        tsk_ctl_t *tsk = (tsk_ctl_t *)data;
 
        wl = (struct wl_priv *)tsk->parent;
+
+       DAEMONIZE("wl_event_handler");
+
        complete(&tsk->completed);
 
        while (down_interruptible (&tsk->sema) == 0) {