diff options
Diffstat (limited to 'drivers/pcmcia/cs.c')
-rw-r--r-- | drivers/pcmcia/cs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c index e39178fc59d0..fabd3529cebc 100644 --- a/drivers/pcmcia/cs.c +++ b/drivers/pcmcia/cs.c | |||
@@ -654,9 +654,10 @@ static int pccardd(void *__skt) | |||
654 | skt->thread = NULL; | 654 | skt->thread = NULL; |
655 | complete_and_exit(&skt->thread_done, 0); | 655 | complete_and_exit(&skt->thread_done, 0); |
656 | } | 656 | } |
657 | complete(&skt->thread_done); | ||
658 | 657 | ||
659 | add_wait_queue(&skt->thread_wait, &wait); | 658 | add_wait_queue(&skt->thread_wait, &wait); |
659 | complete(&skt->thread_done); | ||
660 | |||
660 | for (;;) { | 661 | for (;;) { |
661 | unsigned long flags; | 662 | unsigned long flags; |
662 | unsigned int events; | 663 | unsigned int events; |
@@ -682,11 +683,11 @@ static int pccardd(void *__skt) | |||
682 | continue; | 683 | continue; |
683 | } | 684 | } |
684 | 685 | ||
685 | schedule(); | ||
686 | try_to_freeze(); | ||
687 | |||
688 | if (!skt->thread) | 686 | if (!skt->thread) |
689 | break; | 687 | break; |
688 | |||
689 | schedule(); | ||
690 | try_to_freeze(); | ||
690 | } | 691 | } |
691 | remove_wait_queue(&skt->thread_wait, &wait); | 692 | remove_wait_queue(&skt->thread_wait, &wait); |
692 | 693 | ||