• Jessica Clarke's avatar
    XDMA: Mark engine as not running when stopping after timeouts · cf3611e0
    Jessica Clarke authored
    Unlike engine_start, which sets the engine's running field itself,
    engine_stop instead requires its callers to clear the field. However,
    not all of them do, and notably the timeout handlers do not, meaning
    that after a request times out and we stop the engine we never start it
    again, causing all future transfers on the channel to hit the software
    timeout.
    
    Instead, set running to 0 inside xdma_engine_stop to mirror engine_start
    to both fix the bug and prevent future ones creeping in.
    cf3611e0
libxdma.c 134 KB