Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst | Date | Wed, 8 Jan 2014 16:51:15 +0000 |
| |
> From: Alan Stern > > This may be a foolish question, but why is xhci-hcd using no-op TRBs in > the first place?
Because it can't write in a link TRB because other parts of the code use link TRBs to detect the end of the ring.
The problem is that it can't put a link TRB in the middle of a chain of data fragments unless it is at a 'suitable' offset from the start of the data TD. Given arbitrary input fragmentation this means that you can't put a link TRB in the middle of a TD. (The documented alignment might be as high as 16kB.)
If the rest of the code used a 'ring end pointer' then a link TRB could be used instead.
David
| |