diff -r b3936ad349df sys/dev/usb/xhci.c --- a/sys/dev/usb/xhci.c Thu Aug 21 03:06:52 2025 +0000 +++ b/sys/dev/usb/xhci.c Fri Aug 22 23:08:51 2025 +1000 @@ -4794,6 +4794,13 @@ xhci_device_bulk_start(struct usbd_xfer XHCI_TRB_3_IOC_BIT; xhci_xfer_put_trb(xx, i++, parameter, status, control); + if (!isread && (xfer->ux_flags & USBD_FORCE_SHORT_XFER)) { + status = XHCI_TRB_2_IRQ_SET(0) | + XHCI_TRB_2_TDSZ_SET(0) | + XHCI_TRB_2_BYTES_SET(0); + xhci_xfer_put_trb(xx, i++, parameter, status, control); + } + if (!polling) mutex_enter(&tr->xr_lock); xhci_ring_put_xfer(sc, tr, xx, i);