staging: usbip: remove double giveback of URB
authorMárton Németh <nm127@freemail.hu>
Mon, 13 Dec 2010 20:59:09 +0000 (21:59 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 10 Jan 2011 20:26:02 +0000 (12:26 -0800)
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>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/usbip/vhci_hcd.c

index 832608d3e579c5e750ada04ac6f26f1fbb694305..08bd26a245d50f6a74c9b2a47797e739b6fbbfaa 100644 (file)
@@ -799,20 +799,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");