summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorHolger Waechtler <devnull@localhost>2002-12-05 16:17:52 +0000
committerHolger Waechtler <devnull@localhost>2002-12-05 16:17:52 +0000
commit7acf5c33a364392b151786f1f8606eefd9e08e71 (patch)
tree661caebbf588a3d61580576dbe52dfa53344da49 /linux
parentbe115681678c9a4e34a0cf5caa94c6297b4389f9 (diff)
downloadmediapointer-dvb-s2-7acf5c33a364392b151786f1f8606eefd9e08e71.tar.gz
mediapointer-dvb-s2-7acf5c33a364392b151786f1f8606eefd9e08e71.tar.bz2
applied patch suggested by Oliver Endriss <o.endriss@gmx.de> in order to avoid
race conditions while starting threads
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
index 755c183dc..da0533dd3 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -498,7 +498,7 @@ void dvb_frontend_stop (struct dvb_frontend_data *fe)
{
dprintk ("%s\n", __FUNCTION__);
- while (fe->thread) {
+ while (fe->thread != NULL && fe->thread != (void*) ~0) {
fe->exit = 1;
wake_up_interruptible (&fe->wait_queue);
current->state = TASK_INTERRUPTIBLE;
@@ -519,6 +519,7 @@ void dvb_frontend_start (struct dvb_frontend_data *fe)
return;
fe->exit = 0;
+ fe->thread = (void*) ~0;
kernel_thread (dvb_frontend_thread, fe, 0);
}