diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
index 8b35fae4cd6191aff939a8b45f0b75a27b96ce26..4a2ddf730a3acd173caead38a733bda7c4e7f7be 100644
--- a/drivers/w1/w1.c
+++ b/drivers/w1/w1.c
@@ -1195,8 +1195,10 @@ int w1_process(void *data)
 		 */
 		mutex_unlock(&dev->list_mutex);
 
-		if (kthread_should_stop())
+		if (kthread_should_stop()) {
+			__set_current_state(TASK_RUNNING);
 			break;
+		}
 
 		/* Only sleep when the search is active. */
 		if (dev->search_count) {