Why Nostr? What is Njump?
2024-05-22 13:00:12

Hector Martin on Nostr: So I've had this USB controller dying bug for months. The repro was "move data from ...

So I've had this USB controller dying bug for months. The repro was "move data from USB disks for days". The symptoms were IOMMU faults. I thought we had some horrible heisenbug in our platform code.

I finally found a reliable repro today so I started poking around.

In xhci-ring.c `/* FIXME stream case, several stopped rings */`

Gee, thanks, I love it when months-long anxiety over a bug ends up on a FIXME in the code. As far as I can tell, when USB streams are involved and stuff gets canceled, only one stream's TDs get canceled, leaving the others to still be processed by the HCD with DMA pointers now pointing to nowhere 🤦‍♂️​
Author Public Key
npub1qk9x6yrvten3jqyvundn7exggm90fxf9yfarj5eaz25yd7aty8hqe9azpx