diff --git a/drivers/staging/dst/thread_pool.c b/drivers/staging/dst/thread_pool.c
index c35754d5ec6d..7bed4e851029 100644
--- a/drivers/staging/dst/thread_pool.c
+++ b/drivers/staging/dst/thread_pool.c
@@ -115,7 +115,7 @@ void thread_pool_del_worker(struct thread_pool *p)
 {
 	struct thread_pool_worker *w = NULL;
 
-	while (!w) {
+	while (!w && p->thread_num) {
 		wait_event(p->wait, !list_empty(&p->ready_list) || !p->thread_num);
 
 		dprintk("%s: locking list_empty: %d, thread_num: %d.\n",