View | Details | Raw Unified | Return to bug 263995 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/dev/usb/input/usbhid.c (-2 / +5 lines)
Lines 518-525 usbhid_sync_xfer(struct usbhid_softc* sc, int xfer_idx, Link Here
518
	/* Perform usbhid_write() asyncronously to improve pipelining */
518
	/* Perform usbhid_write() asyncronously to improve pipelining */
519
	if (USB_IN_POLLING_MODE_FUNC() || xfer_ctx->error != 0 ||
519
	if (USB_IN_POLLING_MODE_FUNC() || xfer_ctx->error != 0 ||
520
	    sc->sc_config[xfer_idx].type != UE_INTERRUPT ||
520
	    sc->sc_config[xfer_idx].type != UE_INTERRUPT ||
521
	    sc->sc_config[xfer_idx].direction != UE_DIR_OUT)
521
	    sc->sc_config[xfer_idx].direction != UE_DIR_OUT) {
522
		usbd_transfer_stop(sc->sc_xfer[xfer_idx]);
522
		mtx_unlock(&sc->sc_mtx);
523
		usbd_transfer_drain(sc->sc_xfer[xfer_idx]);
524
		mtx_lock(&sc->sc_mtx);
525
	}
523
	error = xfer_ctx->error;
526
	error = xfer_ctx->error;
524
	if (error == 0)
527
	if (error == 0)
525
		*req = xfer_ctx->req;
528
		*req = xfer_ctx->req;

Return to bug 263995