Further digging through mpt(4)'s timeout handling, I'm getting the impression that there's a missing bus_dmamap_unload() for the data buffer (for xs->datalen != 0). However, I neither know whether that's doing any harm nor what happens in case the IOC is still using the buffer.