diff options
Diffstat (limited to 'drivers/media/dvb-core')
-rw-r--r-- | drivers/media/dvb-core/dvb_demux.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/media/dvb-core/dvb_demux.c b/drivers/media/dvb-core/dvb_demux.c index 58de4410c525..25f3c6484610 100644 --- a/drivers/media/dvb-core/dvb_demux.c +++ b/drivers/media/dvb-core/dvb_demux.c | |||
@@ -1032,8 +1032,13 @@ static int dmx_section_feed_release_filter(struct dmx_section_feed *feed, | |||
1032 | return -EINVAL; | 1032 | return -EINVAL; |
1033 | } | 1033 | } |
1034 | 1034 | ||
1035 | if (feed->is_filtering) | 1035 | if (feed->is_filtering) { |
1036 | /* release dvbdmx->mutex as far as | ||
1037 | it is acquired by stop_filtering() itself */ | ||
1038 | mutex_unlock(&dvbdmx->mutex); | ||
1036 | feed->stop_filtering(feed); | 1039 | feed->stop_filtering(feed); |
1040 | mutex_lock(&dvbdmx->mutex); | ||
1041 | } | ||
1037 | 1042 | ||
1038 | spin_lock_irq(&dvbdmx->lock); | 1043 | spin_lock_irq(&dvbdmx->lock); |
1039 | f = dvbdmxfeed->filter; | 1044 | f = dvbdmxfeed->filter; |