From: Márton Németh <[email protected]>

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 <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/usbip/vhci_hcd.c |   14 --------------
 1 files changed, 0 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c
index 832608d..08bd26a 100644
--- a/drivers/staging/usbip/vhci_hcd.c
+++ b/drivers/staging/usbip/vhci_hcd.c
@@ -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");
-- 
1.7.3.2

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to