}
if (dhd->watchdog_tsk) {
- KILL_PROC(dhd->watchdog_tsk->pid, SIGTERM);
+ send_sig(SIGTERM, dhd->watchdog_tsk, 1);
kthread_stop(dhd->watchdog_tsk);
dhd->watchdog_tsk = NULL;
}
if (dhd->dpc_tsk) {
- KILL_PROC(dhd->dpc_tsk->pid, SIGTERM);
+ send_sig(SIGTERM, dhd->dpc_tsk, 1);
kthread_stop(dhd->dpc_tsk);
dhd->dpc_tsk = NULL;
} else
tasklet_kill(&dhd->tasklet);
if (dhd->sysioc_tsk) {
- KILL_PROC(dhd->sysioc_tsk->pid, SIGTERM);
+ send_sig(SIGTERM, dhd->sysioc_tsk, 1);
kthread_stop(dhd->sysioc_tsk);
dhd->sysioc_tsk = NULL;
}
static void wl_destroy_event_handler(struct wl_priv *wl)
{
if (wl->event_tsk) {
- KILL_PROC(wl->event_tsk->pid, SIGTERM);
+ send_sig(SIGTERM, wl->event_tsk, 1);
kthread_stop(wl->event_tsk);
wl->event_tsk = NULL;
}
if (wl->iscan_on && iscan->tsk) {
iscan->state = WL_ISCAN_STATE_IDLE;
- KILL_PROC(iscan->tsk->pid, SIGTERM);
+ send_sig(SIGTERM, iscan->tsk, 1);
kthread_stop(iscan->tsk);
iscan->tsk = NULL;
}
static s32 __wl_cfg80211_down(struct wl_priv *wl)
{
- struct net_device *ndev = wl_to_ndev(wl);
s32 err = 0;
/* Check if cfg80211 interface is already down */
if (!iscan)
return;
if (iscan->sysioc_tsk) {
- KILL_PROC(iscan->sysioc_tsk->pid, SIGTERM);
+ send_sig(SIGTERM, iscan->sysioc_tsk, 1);
kthread_stop(iscan->sysioc_tsk);
iscan->sysioc_tsk = NULL;
}
#undef IP_TOS
#include <asm/io.h>
-#define KILL_PROC(pid, sig) \
- do { \
- struct task_struct *tsk; \
- tsk = pid_task(find_vpid(pid), PIDTYPE_PID); \
- if (tsk) \
- send_sig(sig, tsk, 1); \
- } while (0)
#endif /* _linuxver_h_ */