Re: [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout()
From: Tomeu Vizoso
Date: Mon Apr 20 2026 - 12:43:02 EST
On Sun, Apr 19, 2026 at 9:19 AM Gyeyoung Baek <gye976@xxxxxxxxx> wrote:
>
> dma_resv_wait_timeout() returns a positive 'remaining jiffies' value
> on success, 0 on timeout, and -errno on failure.
>
> rocket_ioctl_prep_bo() returns this 'long' result from an int-typed
> ioctl handler, so positive values reach userspace as bogus errors.
> Explicitly set ret to 0 on the success path.
>
> Fixes: 525ad89dd904 ("accel/rocket: Add IOCTLs for synchronizing memory accesses")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Gyeyoung Baek <gye976@xxxxxxxxx>
Reviewed-by: Tomeu Vizoso <tomeu@xxxxxxxxxxxxxxx>
Thanks!
Tomeu
> ---
> drivers/accel/rocket/rocket_gem.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/accel/rocket/rocket_gem.c b/drivers/accel/rocket/rocket_gem.c
> index b6a385d2e..c80847192 100644
> --- a/drivers/accel/rocket/rocket_gem.c
> +++ b/drivers/accel/rocket/rocket_gem.c
> @@ -145,6 +145,8 @@ int rocket_ioctl_prep_bo(struct drm_device *dev, void *data, struct drm_file *fi
> ret = dma_resv_wait_timeout(gem_obj->resv, DMA_RESV_USAGE_WRITE, true, timeout);
> if (!ret)
> ret = timeout ? -ETIMEDOUT : -EBUSY;
> + else if (ret > 0)
> + ret = 0;
>
> shmem_obj = &to_rocket_bo(gem_obj)->base;
>
> --
> 2.43.0
>