diff options
author | Steven Rostedt <rostedt@goodmis.org> | 2005-10-10 11:13:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-10 08:33:27 -0700 |
commit | 220ec0291130a932b32b2c66a10e9c5019dab702 (patch) | |
tree | 3b9336e0637dc55776c5b86657126c83339d096d /drivers/pcmcia | |
parent | 2e457ef667158840c1be511f5d10dd42c6dbbe46 (diff) | |
download | linux-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.c | 3 |
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 */ |