CVSROOT:        /cvs
Module name:    src
Changes by:     s...@cvs.openbsd.org    2017/09/01 10:01:27

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

Log message:
Fix a remaining length miscalculation in xhci(4).

Each TRB contains a remaining TD size, which allows hardware to tell whether
additional TRBs follow within the current transfer without reading ahead.
The length of the first TRB was subtracted from the total length before
calculating the remaining TD sizes. This is wrong because remaining TD sizes
are relative to the size of the entire transfer, including the first TRB.

Our current USB code does not trigger this bug because there is no code in
upper layers yet which triggers use of multiple TRBs per transfer.

ok mpi@

Reply via email to