[media] dvb_demux: fix deadlock in dmx_section_feed_release_filter()
[deliverable/linux.git] / drivers / media / dvb-core / dvb_demux.c
index 58de4410c5258a7d6009ae47b5becd7e20fa6208..25f3c64846109d8578a78e90aaf13ae314495f91 100644 (file)
@@ -1032,8 +1032,13 @@ static int dmx_section_feed_release_filter(struct dmx_section_feed *feed,
                return -EINVAL;
        }
 
-       if (feed->is_filtering)
+       if (feed->is_filtering) {
+               /* release dvbdmx->mutex as far as 
+                  it is acquired by stop_filtering() itself */
+               mutex_unlock(&dvbdmx->mutex);
                feed->stop_filtering(feed);
+               mutex_lock(&dvbdmx->mutex);
+       }
 
        spin_lock_irq(&dvbdmx->lock);
        f = dvbdmxfeed->filter;
This page took 0.029059 seconds and 5 git commands to generate.