/* done - retire a request; caller blocked irqs  */
static void done(struct khci_ep *ep, struct khci_request *req, int status)
/* done - retire a request; caller blocked irqs  */
static void done(struct khci_ep *ep, struct khci_request *req, int status)
{
	unsigned		stopped = ep->stopped;
	list_del_init(&req->queue);
	if (likely(req->req.status == -EINPROGRESS))
		req->req.status = status;
	else
		status = req->req.status;
	ep->stopped = 1;
	req->req.complete(&ep->ep, &req->req);
	ep->stopped = stopped;
}