Questionable code in sys/dev/sound/pcm/channel.c

Conrad J. Sabatier conrads at cox.net
Tue Jul 27 08:41:13 PDT 2004


On 26-Jul-2004 Conrad J. Sabatier wrote:
> 
> On 26-Jul-2004 Conrad J. Sabatier wrote:
>> I'm a little perplexed at the following bit of logic in chn_write()
>> (which is where the "interrupt timeout, channel dead" messages are
>> being generated).

[snip]

>> Also, at the end of the function:
>> 
>>     if (count <= 0) {
>>         c->flags |= CHN_F_DEAD;
>>         printf("%s: play interrupt timeout, channel dead\n",
>> c->name);
>>     }
>> 
>>     return ret;
>> }
>> 
>> Could it be that the conditional test is wrong here?  Perhaps
>> we should be using (count < 0) instead?
> 
> I'm now running a kernel built with this last conditional test
> changed to "if (count < 0)" and sound is still working OK.  Have yet
> to see if this eliminates the interrupt timeout messages.

Well, that was a failure.  :-)  Didn't see any timeout error messages,
but the device still died eventually, nonetheless.  I've since changed
back to the original code.

-- 
Conrad J. Sabatier <conrads at cox.net> -- "In Unix veritas"


More information about the freebsd-current mailing list