> 2026年6月26日 20:18,WenTao Liang <[email protected]> 写道:
> 
> dma_fence_enable_sw_signaling acquires an extra reference on each chain
>  fence. The error unwind loop calls dma_fence_put only once per
>  chain/fence without first signaling the fence to trigger the callback
>  that releases the signaling reference. This prevents the chain fence kref
>  from reaching 0, permanently leaking the chain and its contained fence.
> 
> Cc: [email protected]
> Fixes: dc2f7e67a28a ("dma-buf: Exercise dma-fence-chain under selftests")
> Signed-off-by: WenTao Liang <[email protected]>
> ---
> drivers/dma-buf/st-dma-fence-chain.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/dma-buf/st-dma-fence-chain.c 
> b/drivers/dma-buf/st-dma-fence-chain.c
> index 821023dd34df..7dc18e294387 100644
> --- a/drivers/dma-buf/st-dma-fence-chain.c
> +++ b/drivers/dma-buf/st-dma-fence-chain.c
> @@ -152,7 +152,10 @@ static int fence_chains_init(struct fence_chains *fc, 
> unsigned int count,
> 
> unwind:
>       for (i = 0; i < count; i++) {
> -             dma_fence_put(fc->fences[i]);
> +             if (fc->fences[i]) {
> +                     dma_fence_signal(fc->fences[i]);
> +                     dma_fence_put(fc->fences[i]);
> +             }
>               dma_fence_put(fc->chains[i]);
>       }
>       kvfree(fc->fences);
> -- 
> 2.39.5 (Apple Git-154)

Please ignore this patch. I will resend a proper version after
learning the kernel submission process.

Apologies for the noise.

Best regards,
WenTao Liang

Reply via email to