/* The URB is returned to the USB subsystem.  */
void qset_remove_urb(struct whc *whc, struct whc_qset *qset, struct urb *urb, int status)
/* The URB is returned to the USB subsystem.  */
void qset_remove_urb(struct whc *whc, struct whc_qset *qset, struct urb *urb, int status)
{
	struct wusbhc *wusbhc = &whc->wusbhc;
	struct whc_urb *wurb = urb->hcpriv;
	usb_hcd_unlink_urb_from_ep(&wusbhc->usb_hcd, urb);
	spin_unlock(&whc->lock);
	wusbhc_giveback_urb(wusbhc, urb, status);
	spin_lock(&whc->lock);
	kfree(wurb);
}