On Mon, Nov 09, 2026 at 09:00:22PM -0700, James Hilliard wrote: > After one second of unsuccessful pause retries, stop the transfer with > dmaengine_terminate_sync() outside the port lock. An indefinite wait could > otherwise leave a request/response peer waiting for data that is stuck in > a partial DMA buffer. Report that recovery discards the pending payload: > without a stable residue it cannot safely be copied. Keep rx_running, > rx_pause_pending and rx_terminating set until termination has stopped DMA > and drained its callbacks. Then restore receive handling and allow another > DMA descriptor, without latching a permanent PIO fallback for a pause > timeout. This trades the stalled transfer's data for continued reception.
Reviewed-by: Raul E Rangel <[email protected]>
