Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7571f089 authored by Márton Németh's avatar Márton Németh Committed by Greg Kroah-Hartman
Browse files

staging: usbip: remove double giveback of URB

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: default avatarMárton Németh <nm127@freemail.hu>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 63d5e5a7
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -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");