On Tue, 9 Sep 2025 16:04:33 +0300, Mathias Nyman wrote: > Adding the zero-length TRB to the original TD when we need to send a > zero-length packet would simplify things, and I would otherwise fully > support this, but the xHCI spec is pretty clear that it requires a > dedicated TD for zero-length transactions. You are right of course, an empty TRB in a TD would simply send no data, or maybe it's a TRB Error, I'm not sure. But this is not what this patch is about - the trick is to use an *unchained* TRB, which is a separate TD from HW's perspective, and to count it as part of the same TD from the driver's perspective. Control URBs are like that and they work fine. They can halt on any TRB (which are all unchained, per spec) and the whole URB goes out. This bug is (probably?) low impact, but it bothers me because it's a design flaw: either non-isoc multi-TD URBs are supported, or they are not. One or another part of the driver needs to adapt.