[alsa-devel] snd_mixart_send_msg / snd_mixart_send_msg_wait_notif

Rene Herman rene.herman at gmail.com
Tue Sep 18 13:57:11 CEST 2007


On 09/18/2007 01:54 PM, Rene Herman wrote:

People just _make_ me reply to myself:

  alsa at digigram.com
     SMTP error from remote mailer after RCPT TO:<alsa at digigram.com>:
     host mail.digigram.com [213.30.172.230]: 550 5.1.1 <alsa at digigram.com>:
     Recipient address rejected: User unknown in relay recipient table

> While looking through ALSA for schedule_timeout() calls, I ran into:
> 
> int snd_mixart_send_msg(...)
> {
> 
>     [ ... ]
> 
>         set_current_state(TASK_UNINTERRUPTIBLE);
>         add_wait_queue(&mgr->msg_sleep, &wait);
>         spin_unlock_irq(&mgr->msg_lock);
>         timeout = schedule_timeout(MSG_TIMEOUT_JIFFIES);
>         remove_wait_queue(&mgr->msg_sleep, &wait);
> 
>         if (! timeout) {
>                 /* error - no ack */
>                 mutex_unlock(&mgr->msg_mutex);
>                 snd_printk(KERN_ERR "error: no reponse on msg %x\n", 
> msg_frame);
>                 return -EIO;
>         }
> 
>     [ ... ]
> 
> }
> 
> and the same in snd_mixart_send_msg_wait_notif().
> 
> I believe there to be  something wrong with this code. A 
> schedule_timeout() in TASK_UNINTERRUPTIBLE is always going to return 0. 
> Didn't you intend to use a wait_event_timeout() or something like that? 
> Puzzled, since you err out on !timeout, and it seems every run through 
> this would end up there.

Rene.



More information about the Alsa-devel mailing list