[linux-dvb] down_interruptible usage

Kenneth Aafløy kenneth at linuxtv.org
Sat Aug 6 20:31:43 CEST 2005


I've been searching for the reason why I was _loosing_ filters
in the demuxer, and I've found out the subtle reason.

In dmxdev.c, the dvb_dmxdev_release is calling dvb_dmxdev_filter_free.
This function uses down_interruptible to wait for two mutexes, but
if those are interrupted by a signal, the filter will be _lost_.
This is easily reproducible with a program that creates a few threads,
which open and close the filters regulary, and then running/interrupting
this program some number of times.

Is changing all down_interruptible (that protects freeing a structure)
to down(), or will this have other unseen side-effects?


More information about the linux-dvb mailing list