I have a a custom SRIO driver that communicates via the DMA controller through an ATMU for maintenance packets. When encountering network errors, the software will timeout the DMA transfer and trigger a software initiated channel abort. The DMA channel then gets stuck in the busy state forever. Even without triggering the software initiated channel abort, the transfer never times out or completes. This renders the channel unusable.
Dumping the ATMU and DMA registers with a BDI (2000/3000) shows that everything is setup correctly as described in the manual.
What would cause a software initiated abort to not correctly free the channel from its busy state?