mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
USB: fix the bug that urb enqueue again after kill urb.
This commit is contained in:
@@ -983,11 +983,19 @@ static int urb_enqueue(struct usb_hcd *hcd,
|
||||
}
|
||||
#endif
|
||||
|
||||
if(atomic_read(&urb->use_count)>1){
|
||||
if (unlikely(atomic_read(&urb->use_count) > 1)) {
|
||||
retval = -EPERM;
|
||||
printk("%s urb %p already in queue, qtd %p, count%d\n",
|
||||
printk("%s urb %p already in queue, qtd %p, use_count %d\n",
|
||||
__func__, urb, urb->hcpriv, atomic_read(&urb->use_count));
|
||||
return retval;
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (unlikely(atomic_read(&urb->reject))) {
|
||||
retval = -EPERM;
|
||||
printk("%s urb %p submissions will fail, urb->reject %d, use_count %d\n",
|
||||
__func__, urb, atomic_read(&urb->reject), atomic_read(&urb->use_count));
|
||||
return retval;
|
||||
|
||||
}
|
||||
|
||||
if ((usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS)
|
||||
|
||||
Reference in New Issue
Block a user