Hello,

I think there is a possible issue in the mon_get_event and mon_read
functions:

On Tue, 2006-11-21 at 22:56 -0800, Pete Zaitcev wrote:
[...]
> +     mutex_lock(&rp->fetch_lock);
> +
> +     add_wait_queue(&rp->b_wait, &waita);
> +     set_current_state(TASK_INTERRUPTIBLE);
> +
> +     spin_lock_irqsave(&rp->b_lock, flags);
> +     while (!MON_RING_EMPTY(rp)) {
> +             spin_unlock_irqrestore(&rp->b_lock, flags);
> +
> +             if (file->f_flags & O_NONBLOCK) {
> +                     set_current_state(TASK_RUNNING);
> +                     remove_wait_queue(&rp->b_wait, &waita);
> +                     return -EWOULDBLOCK; /* Same as EAGAIN in Linux */

Before returning the mutex 'fetch_lock' is hold, shouldn't it be
released ?!? 
The same situation happens a few lines after and in the mon_bin_read
function. Am I missing something ?!?

Best regards, 

Paolo


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to