summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
authorSteven Rostedt <rostedt@goodmis.org>2005-10-10 11:13:17 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-10 08:33:27 -0700
commit220ec0291130a932b32b2c66a10e9c5019dab702 (patch)
tree3b9336e0637dc55776c5b86657126c83339d096d /drivers/pcmcia
parent2e457ef667158840c1be511f5d10dd42c6dbbe46 (diff)
downloadlinux-220ec0291130a932b32b2c66a10e9c5019dab702.tar.gz
linux-220ec0291130a932b32b2c66a10e9c5019dab702.tar.bz2
linux-220ec0291130a932b32b2c66a10e9c5019dab702.zip
[PATCH] pcmcia: fix task state at pccard thread exit
The pccardd thread has a race in it that it can shutdown in the TASK_INTERRUPTIBLE state. Make sure we mark ourselves runnable again as we remove ourselves from the wait queue. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/cs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index fabd3529cebc..d5e76423a0ee 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -689,6 +689,9 @@ static int pccardd(void *__skt)
schedule();
try_to_freeze();
}
+ /* make sure we are running before we exit */
+ set_current_state(TASK_RUNNING);
+
remove_wait_queue(&skt->thread_wait, &wait);
/* remove from the device core */