summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dvb-core
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@kernellabs.com>2009-05-20 22:58:16 -0400
committerDevin Heitmueller <dheitmueller@kernellabs.com>2009-05-20 22:58:16 -0400
commit5f623f9662748ffe9662ee5b0561fe746ef3279d (patch)
tree540cb63bce61b8355764d85718020a3dd6a0ef58 /linux/drivers/media/dvb/dvb-core
parent0afb58412d04348dc6819d5fe8da278c857d37ab (diff)
downloadmediapointer-dvb-s2-5f623f9662748ffe9662ee5b0561fe746ef3279d.tar.gz
mediapointer-dvb-s2-5f623f9662748ffe9662ee5b0561fe746ef3279d.tar.bz2
dvb_frontend: fix case where fepriv->exit not reset
From: Devin Heitmueller <dheitmueller@kernellabs.com> The fact that we now explicitly set fepriv->exit = 1 when the thread is shutting down exposed an edge case where it was not being reset back to zero once the thread went away in some cases. This resulted in failures in cases where the frontend was closed, and then opened O_RDONLY, since in that case the thread is not being restarted but it was checking the fepriv->exit flag. Thanks to Thierry Lelegard, who and encountered and debugged a large portion of the issue in the same twelve hours that I did (as well as testing my patch). Priority: high Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Cc: Thierry Lelegard <thierry.lelegard@tv-numeric.com>
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
index d359f6841..41166d407 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -668,6 +668,7 @@ restart:
}
fepriv->thread = NULL;
+ fepriv->exit = 0;
mb();
dvb_frontend_wakeup(fe);