On Thu, May 07, 2026 at 03:44:25PM +0100, Liviu Dudau wrote:
> Commit 18226ba52159 ("drm/syncobj: reject invalid flags in
> drm_syncobj_find_fence") forgot to take into account the fact that
> drm_syncobj_find() takes a reference to syncobj and returns early
> without dropping the reference, leading to memory leaks.
> 
> Fixes: 18226ba52159 ("drm/syncobj: reject invalid flags in 
> drm_syncobj_find_fence")
> Reported by: Sam Spencer <[email protected]>
> Signed-off-by: Liviu Dudau <[email protected]>

Ping on this patch.

Erik's email address is bouncing, anyone else willing to give an ack?

Best regards,
Liviu

> ---
>  drivers/gpu/drm/drm_syncobj.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
> index 8d9fd1917c6e6..c9dbf64c0c9f2 100644
> --- a/drivers/gpu/drm/drm_syncobj.c
> +++ b/drivers/gpu/drm/drm_syncobj.c
> @@ -442,13 +442,15 @@ int drm_syncobj_find_fence(struct drm_file 
> *file_private,
>       u64 timeout = nsecs_to_jiffies64(DRM_SYNCOBJ_WAIT_FOR_SUBMIT_TIMEOUT);
>       int ret;
>  
> -     if (flags & ~DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT)
> -             return -EINVAL;
> -
>       if (!syncobj)
>               return -ENOENT;
>  
> -     /* Waiting for userspace with locks help is illegal cause that can
> +     if (flags & ~DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT) {
> +             ret = -EINVAL;
> +             goto out;
> +     }
> +
> +     /* Waiting for userspace with locks held is illegal cause that can
>        * trivial deadlock with page faults for example. Make lockdep complain
>        * about it early on.
>        */
> -- 
> 2.54.0
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯

Reply via email to