The patch titled
pcmcia/cs: fix possible missed wakeup
has been added to the -mm tree. Its filename is
pcmcia-cs-fix-possible-missed-wakeup.patch
Patches currently in -mm which might be from [EMAIL PROTECTED] are
pci-pm-support-pm-cap-version-3.patch
yenta-make-topic95-bridges-work-with-16bit-cards.patch
pcmcia-cs-fix-possible-missed-wakeup.patch
From: Daniel Ritz <[EMAIL PROTECTED]>
- thread_done should only be completed when the wait_queue is installed.
- all wake up conditions should be checked before schedule()
this fixes a hang of rmmod in the sequence modprobe yenta_socket; rmmod
yenta_socket as reported by Andreas Steinmetz. w/o this rmmod yenta_socket
can hang on wait_for_completion() in pcmcia_unregister_socket()
Signed-off-by: Daniel Ritz <[EMAIL PROTECTED]>
Cc: Dominik Brodowski <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
drivers/pcmcia/cs.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff -puN drivers/pcmcia/cs.c~pcmcia-cs-fix-possible-missed-wakeup
drivers/pcmcia/cs.c
--- 25/drivers/pcmcia/cs.c~pcmcia-cs-fix-possible-missed-wakeup Wed Aug 17
16:06:45 2005
+++ 25-akpm/drivers/pcmcia/cs.c Wed Aug 17 16:06:45 2005
@@ -654,9 +654,10 @@ static int pccardd(void *__skt)
skt->thread = NULL;
complete_and_exit(&skt->thread_done, 0);
}
- complete(&skt->thread_done);
add_wait_queue(&skt->thread_wait, &wait);
+ complete(&skt->thread_done);
+
for (;;) {
unsigned long flags;
unsigned int events;
@@ -682,11 +683,11 @@ static int pccardd(void *__skt)
continue;
}
- schedule();
- try_to_freeze();
-
if (!skt->thread)
break;
+
+ schedule();
+ try_to_freeze();
}
remove_wait_queue(&skt->thread_wait, &wait);
_
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html