mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
dma-fence: Clarify external lock use case in dma_fence_init() docs
The kerneldoc comment on dma_fence_init() and dma_fence_init64() describe the legacy reason to pass an external lock as a need to prevent multiple fences "from signaling out of order". However, this wording is a bit misleading: a shared spinlock does not (and cannot) prevent the signaler from signaling out of order. Signaling order is the driver's responsibility regardless of whether the lock is shared or per-fence. Reword both comments to better describe the legacy use cases where a shared lock was needed. Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20260531125115.1136036-1-mcanal@igalia.com Signed-off-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
21fcb222f0
commit
e84b07e0a3
|
|
@ -1102,9 +1102,12 @@ __dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
|
|||
* context and seqno are used for easy comparison between fences, allowing
|
||||
* to check which fence is later by simply using dma_fence_later().
|
||||
*
|
||||
* It is strongly discouraged to provide an external lock because this couples
|
||||
* lock and fence life time. This is only allowed for legacy use cases when
|
||||
* multiple fences need to be prevented from signaling out of order.
|
||||
* External locks are a relic of legacy use cases that needed a shared lock
|
||||
* to serialize signaling when no out-of-order signaling was possible through
|
||||
* &dma_fence_ops.signaled. Drivers have abandoned this concept since the
|
||||
* introduction of the callback, but the external lock is still around. New
|
||||
* users MUST NOT use external locks, as they force the issuer to outlive all
|
||||
* fences that reference the lock.
|
||||
*/
|
||||
void
|
||||
dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
|
||||
|
|
@ -1129,9 +1132,8 @@ EXPORT_SYMBOL(dma_fence_init);
|
|||
* Context and seqno are used for easy comparison between fences, allowing
|
||||
* to check which fence is later by simply using dma_fence_later().
|
||||
*
|
||||
* It is strongly discouraged to provide an external lock because this couples
|
||||
* lock and fence life time. This is only allowed for legacy use cases when
|
||||
* multiple fences need to be prevented from signaling out of order.
|
||||
* New users MUST NOT use external locks. Check the documentation in
|
||||
* dma_fence_init() to understand the motives behind the legacy use cases.
|
||||
*/
|
||||
void
|
||||
dma_fence_init64(struct dma_fence *fence, const struct dma_fence_ops *ops,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user