Re: [PATCH v4 1/4] dmaengine: add dma_device_get() helper
From: Frank Li
Date: Tue Aug 18 2026 - 12:13:07 EST
On Tue, Aug 18, 2026 at 03:43:45AM +0000, Shivank Garg wrote:
> Add dma_device_get() helper to match dma_device_put() to make code
> symmetric. It wraps open-coded kref_get_unless_zero() and asserts that
> dma_list_mutex is held, matching its put counterpart.
>
> No functional change intended.
>
> Suggested-by: Frank Li <Frank.Li@xxxxxxx>
> Signed-off-by: Shivank Garg <shivankg@xxxxxxx>
> ---
> drivers/dma/dmaengine.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
> index 6ffd8bd82154..77638dc16e71 100644
> --- a/drivers/dma/dmaengine.c
> +++ b/drivers/dma/dmaengine.c
> @@ -433,6 +433,12 @@ static void dma_device_release(struct kref *ref)
> device->device_release(device);
> }
>
> +static bool dma_device_get(struct dma_device *device)
Please the same return type of kref_get_unless_zero(),
it should be int.
Frank
> +{
> + lockdep_assert_held(&dma_list_mutex);
> + return kref_get_unless_zero(&device->ref);
> +}
> +
> static void dma_device_put(struct dma_device *device)
> {
> lockdep_assert_held(&dma_list_mutex);
> @@ -460,8 +466,7 @@ static int dma_chan_get(struct dma_chan *chan)
> if (!try_module_get(owner))
> return -ENODEV;
>
> - ret = kref_get_unless_zero(&chan->device->ref);
> - if (!ret) {
> + if (!dma_device_get(chan->device)) {
> ret = -ENODEV;
> goto module_put_out;
> }
>
> --
> 2.43.0
>