Christopher Pascoe wrote: > dvb_frontend_thread performs an up() on its semaphore at exit, even though > one must have already been done to reach the exit point. This means > fe->sem affords no protection past the first time a frontend device is > closed. > > This was manifesting as a 3 second tuning delay on my system when opening > the frontend device all times except the first, due to a race on > fe->wakeup. I imagine it could also cause tuning failures in other > situations. > > The attached patch removes the extra up and also corrects the title block > in dvb_frontend.c which calls this file dvb-core.c.
Thanks, patch applied. The code in dvb_frontend_stop() used to do a down() on that sem to wait for the thread to exit. Anyway, for 2.6 the thread handling stuff should be changed to use the new functions in linux/kthread.h. Patches are welcome. Johannes
