<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
I found a code problem in dvb-core when I was debugging with my dvb
driver.<br>
<br>
The code in dvb_dvr_release() file dmxdev.c<br>
/* TODO */<br>
&nbsp;&nbsp;&nbsp; dvbdev-&gt;users--;<br>
&nbsp;&nbsp;&nbsp; if(<b>dvbdev-&gt;users== -1</b> &amp;&amp; dmxdev-&gt;exit==1) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fops_put(file-&gt;f_op);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; file-&gt;f_op = NULL;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mutex_unlock(&amp;dmxdev-&gt;mutex);<br>
<br>
"dvbdev-&gt;users== -1" should be changed to "dvbdev-&gt;users== 1",
otherwise driver may block forever in dvb_dmxdev_release() where a
wakeup condition is "dvbdev-&gt;users== 1". <br>
<br>
Here is the code in dvb_dmxdev_release().<br>
<br>
if (dmxdev-&gt;dvr_dvbdev-&gt;users &gt; 1) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; wait_event(dmxdev-&gt;dvr_dvbdev-&gt;wait_queue,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <b>dmxdev-&gt;dvr_dvbdev-&gt;users==1</b>);<br>
}<br>
<br>
I hope it is right to post this message here.<br>
<br>
<div class="moz-signature">-- <br>
<meta http-equiv="CONTENT-TYPE" content="text/html; ">
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)">
<meta name="AUTHOR" content="zhang">
<meta name="CREATED" content="20081117;15071400">
<meta name="CHANGEDBY" content="zhang">
<meta name="CHANGED" content="20081119;15534200">
<meta name="CHANGEDBY" content="zhang">
<p style="margin-bottom: 0in; line-height: 0.1in;" align="justify"><font
 color="#365f91"><font size="2">Xiaobing </font></font><font
 color="#365f91"><font size="2">Zhang
</font></font></p>
</div>
</body>
</html>