From: Xiubo Li Date: Thu, 15 Jun 2017 07:05:31 +0000 (+0800) Subject: tcmu: Fix module removal due to stuck unmap_thread thread again X-Git-Tag: microblaze-4.14-rc3~473^2~31 X-Git-Url: http://git.monstr.eu/?p=linux-2.6-microblaze.git;a=commitdiff_plain;h=07932a023af3cd728390ffdaeffb78e357123181 tcmu: Fix module removal due to stuck unmap_thread thread again Because the unmap code just after the schdule() returned may take a long time and if the kthread_stop() is fired just when in this routine, the module removal maybe stuck too. Signed-off-by: Xiubo Li Reviewed-by: Mike Christie Signed-off-by: Nicholas Bellinger --- diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index afc1fd6bacaf..a60a66d61146 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c @@ -1707,7 +1707,7 @@ static int unmap_thread_fn(void *data) struct page *page; int i; - while (1) { + while (!kthread_should_stop()) { DEFINE_WAIT(__wait); prepare_to_wait(&unmap_wait, &__wait, TASK_INTERRUPTIBLE);