On 5/15/26 13:01, Liviu Dudau wrote:
> 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?
Trying Erik's gmail address.
>> ---
>> 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
>>
>
--
Earthling Michel Dänzer \ GNOME / Xwayland / Mesa developer
https://redhat.com \ Libre software enthusiast