int
 bfad_worker(void *ptr)
 {
-       struct bfad_s *bfad;
-       unsigned long   flags;
-
-       bfad = (struct bfad_s *)ptr;
-
-       while (!kthread_should_stop()) {
+       struct bfad_s *bfad = ptr;
+       unsigned long flags;
 
-               /* Send event BFAD_E_INIT_SUCCESS */
-               bfa_sm_send_event(bfad, BFAD_E_INIT_SUCCESS);
+       if (kthread_should_stop())
+               return 0;
 
-               spin_lock_irqsave(&bfad->bfad_lock, flags);
-               bfad->bfad_tsk = NULL;
-               spin_unlock_irqrestore(&bfad->bfad_lock, flags);
+       /* Send event BFAD_E_INIT_SUCCESS */
+       bfa_sm_send_event(bfad, BFAD_E_INIT_SUCCESS);
 
-               break;
-       }
+       spin_lock_irqsave(&bfad->bfad_lock, flags);
+       bfad->bfad_tsk = NULL;
+       spin_unlock_irqrestore(&bfad->bfad_lock, flags);
 
        return 0;
 }