mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-27 03:55:37 +08:00
usb: wusbcore: return -ENOENT for unlinked URBs.
Return -ENOENT for unlinked URBs. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bbfc34201f
commit
e05a1fd946
@ -1848,6 +1848,7 @@ int wa_urb_dequeue(struct wahc *wa, struct urb *urb, int status)
|
||||
pr_debug("%s: xfer %p id 0x%08X has no RPIPE. %s",
|
||||
__func__, xfer, wa_xfer_id(xfer),
|
||||
"Probably already aborted.\n" );
|
||||
result = -ENOENT;
|
||||
goto out_unlock;
|
||||
}
|
||||
/* Check the delayed list -> if there, release and complete */
|
||||
@ -1878,6 +1879,7 @@ int wa_urb_dequeue(struct wahc *wa, struct urb *urb, int status)
|
||||
* segments will be completed in the DTI interrupt.
|
||||
*/
|
||||
seg->status = WA_SEG_ABORTED;
|
||||
seg->result = -ENOENT;
|
||||
spin_lock_irqsave(&rpipe->seg_lock, flags2);
|
||||
list_del(&seg->list_node);
|
||||
xfer->segs_done++;
|
||||
@ -1917,12 +1919,12 @@ int wa_urb_dequeue(struct wahc *wa, struct urb *urb, int status)
|
||||
wa_xfer_completion(xfer);
|
||||
if (rpipe_ready)
|
||||
wa_xfer_delayed_run(rpipe);
|
||||
return 0;
|
||||
return result;
|
||||
|
||||
out_unlock:
|
||||
spin_unlock_irqrestore(&xfer->lock, flags);
|
||||
out:
|
||||
return 0;
|
||||
return result;
|
||||
|
||||
dequeue_delayed:
|
||||
list_del_init(&xfer->list_node);
|
||||
@ -1958,7 +1960,7 @@ static int wa_xfer_status_to_errno(u8 status)
|
||||
[WA_XFER_STATUS_NOT_FOUND] = 0,
|
||||
[WA_XFER_STATUS_INSUFFICIENT_RESOURCE] = -ENOMEM,
|
||||
[WA_XFER_STATUS_TRANSACTION_ERROR] = -EILSEQ,
|
||||
[WA_XFER_STATUS_ABORTED] = -EINTR,
|
||||
[WA_XFER_STATUS_ABORTED] = -ENOENT,
|
||||
[WA_XFER_STATUS_RPIPE_NOT_READY] = EINVAL,
|
||||
[WA_XFER_INVALID_FORMAT] = EINVAL,
|
||||
[WA_XFER_UNEXPECTED_SEGMENT_NUMBER] = EINVAL,
|
||||
|
Loading…
Reference in New Issue
Block a user