On 10/10/17 16:51, David Laight wrote:
> From: Robin Murphy
>> Sent: 10 October 2017 16:25
> ...
>>> That could 'just' be the hardware doing a 'readahead' of the ring.
>>> Somewhat annoying if it is doing that across page boundaries.
>>
>>> Although, in that case, the read values wouldn't be used because the
>>> last TRB is a link.
>>> So that shouldn't stop the USB transfer - just gives an annoying error 
>>> message.
>>> OTOH if the PCIe read completion ends up with an error status it might halt
>>> the ring (or similar).
>>
>> Indeed, on my machine once the PCIe root complex gets an abort back from the
>> IOMMU, the VL805 is basically dead until a hard reset. The grotty diff
>> below does resolve that particular issue, but I'm not sure I like it :/
> 
> Is it enough to only allocate 255 TRB per page instead of adding a
> guard page?

Good point - crudely hacking TRBS_PER_SEGMENT down to 252 (255 made
things go a bit wacky) does indeed appear to suffice. I'll have a go at
a slightly nicer approach of just reserving the last TRB in a segment
where necessary.

Robin.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to