]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Sun, 26 Jun 2011 16:46:14 +0000 (12:46 -0400)
commit 7571f089d7522a95c103558faf313c7af8856ceb 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>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
drivers/staging/usbip/vhci_hcd.c

index 7604519e3ba34162b97fb462999813339fff7a85..31317ffd11d3cbe8077f459944c1e9a97aefbf01 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");