DMA Engine Documentation: TX Descriptor and Submission

From: Federico Vaga
Date: Mon Jan 28 2019 - 03:47:58 EST


Hi,

I have a new question concerning documentation.

https://www.kernel.org/doc/html/latest/driver-api/dmaengine/client.html

>From this document it is not really clear, at least to me, if clients can
consider valid the `struct dma_async_tx_descriptor` after submission to the
DMA engine.

Clients get a TX descriptor from a DMA engine using things like
`dmaengine_prep_*`. These calls - may - allocate new descriptors and return
them to the caller; this may include other structures which are not visible to
clients. So, if my understanding is correct, this means that it's the DMA
engine that, on TX completion, releases any TX descriptor allocated by
`dmaengine_prep_*`. This implies that the pointer that the client is using
must be considered invalid right after `dmaengine_submit()`.

If what I understood by reading the documentation and the code is correct,
then I think that this should be mentioned in the Documentation.
If I'm wrong, please tell me where :)

Thanks