Index: sys/dev/usb/uhci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/uhci.c,v retrieving revision 1.257 diff -u -p -u -r1.257 uhci.c --- sys/dev/usb/uhci.c 4 Apr 2013 13:27:56 -0000 1.257 +++ sys/dev/usb/uhci.c 29 Aug 2013 21:24:01 -0000 @@ -2487,13 +2491,14 @@ uhci_device_request(usbd_xfer_handle xfe /* Set up data transaction */ if (len != 0) { upipe->nexttoggle = 1; - err = uhci_alloc_std_chain(upipe, sc, len, isread, xfer->flags, + err = uhci_alloc_std_chain(upipe, sc, len, isread, + xfer->flags & ~USBD_SHORT_XFER_OK, /* JAK's PR - FS device no OUT of get descriptor */ &xfer->dmabuf, &data, &dataend); if (err) return (err); next = data; dataend->link.std = stat; - dataend->td.td_link = htole32(stat->physaddr | UHCI_PTR_VF | UHCI_PTR_TD); + dataend->td.td_link = htole32(stat->physaddr/* | UHCI_PTR_VF*/ | UHCI_PTR_TD); usb_syncmem(&dataend->dma, dataend->offs + offsetof(uhci_td_t, td_link), sizeof(dataend->td.td_link), @@ -2507,7 +2512,7 @@ uhci_device_request(usbd_xfer_handle xfe usb_syncmem(&upipe->u.ctl.reqdma, 0, sizeof *req, BUS_DMASYNC_PREWRITE); setup->link.std = next; - setup->td.td_link = htole32(next->physaddr | UHCI_PTR_VF | UHCI_PTR_TD); + setup->td.td_link = htole32(next->physaddr /*| UHCI_PTR_VF */| UHCI_PTR_TD); setup->td.td_status = htole32(UHCI_TD_SET_ERRCNT(3) | ls | UHCI_TD_ACTIVE);