CVSROOT:        /cvs
Module name:    src
Changes by:     patr...@cvs.openbsd.org 2019/11/18 13:08:49

Modified files:
        sys/dev/usb    : xhci.c 

Log message:
Fix actual length calculation of short transfers in xhci(4).  So far
we have subtracted the remaining length from the total transfer
length, which essentially means that we assume that all TRBs have
successfully been transferred apart from the remainder.  Actually
we might get a short completion in the middle of a chain of TRBs,
which means that all TRBs until this TRB have completed successfully
apart from a remainder.  Thus we have to count the length of all
TRBs until and including the one that we went short on, and remove
the remainder.  All following TRBs in the same transfer must be
ignored.

Found by and fixed with gerhard@
ok mglocker@

Reply via email to