mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
staging: usbip: remove double giveback of URB
commit 7571f089d7 upstream.
In the vhci_urb_dequeue() function the TCP connection is checked twice.
Each time when the TCP connection is closed the URB is unlinked and given
back. Remove the second attempt of unlinking and giving back of the URB completely.
This patch fixes the bug described at https://bugzilla.kernel.org/show_bug.cgi?id=24872 .
Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
376faec0f6
commit
9aedc25914
@@ -798,20 +798,6 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
|
||||
spin_unlock_irqrestore(&vdev->priv_lock, flags2);
|
||||
}
|
||||
|
||||
|
||||
if (!vdev->ud.tcp_socket) {
|
||||
/* tcp connection is closed */
|
||||
usbip_uinfo("vhci_hcd: vhci_urb_dequeue() gives back urb %p\n",
|
||||
urb);
|
||||
|
||||
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
||||
|
||||
spin_unlock_irqrestore(&the_controller->lock, flags);
|
||||
usb_hcd_giveback_urb(vhci_to_hcd(the_controller), urb,
|
||||
urb->status);
|
||||
spin_lock_irqsave(&the_controller->lock, flags);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&the_controller->lock, flags);
|
||||
|
||||
usbip_dbg_vhci_hc("leave\n");
|
||||
|
||||
Reference in New Issue
Block a user