From: Eric W. Biederman Date: Tue, 12 Dec 2006 22:26:07 +0000 (-0700) Subject: 9p: Use kthread_stop instead of sending a SIGKILL. X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2c0463a9ae8751547c39302aeb31c6cef16b5df4;p=openwrt%2Fstaging%2Fblogic.git 9p: Use kthread_stop instead of sending a SIGKILL. Since the kthread api does not bump the reference count on processes that tracked it is not safe allow user space to kill the threads, as I still retain a pointer to the task_struct. Signed-off-by: Eric W. Biederman Acked-by: Eric Van Hensbergen --- diff --git a/fs/9p/mux.c b/fs/9p/mux.c index 147ceef8e537..c783874a9caf 100644 --- a/fs/9p/mux.c +++ b/fs/9p/mux.c @@ -256,7 +256,7 @@ static void v9fs_mux_poll_stop(struct v9fs_mux_data *m) vpt->muxnum--; if (!vpt->muxnum) { dprintk(DEBUG_MUX, "destroy proc %p\n", vpt); - send_sig(SIGKILL, vpt->task, 1); + kthread_stop(vpt->task); vpt->task = NULL; v9fs_mux_poll_task_num--; } @@ -438,11 +438,8 @@ static int v9fs_poll_proc(void *a) vpt = a; dprintk(DEBUG_MUX, "start %p %p\n", current, vpt); - allow_signal(SIGKILL); while (!kthread_should_stop()) { set_current_state(TASK_INTERRUPTIBLE); - if (signal_pending(current)) - break; list_for_each_entry_safe(m, mtmp, &vpt->mux_list, mux_list) { v9fs_poll_mux(m);