Maíra Canal
e6145cfc29
drm/v3d: Reject invalid out_sync handles in submit ioctls
...
v3d_submit_process_post_deps() looks up the out_sync syncobj via
drm_syncobj_find(), and if userspace passes a non-zero handle that doesn't
refer to a valid syncobj, the lookup silently returns NULL and the
post-deps step skips publishing the submission's last fence to it. The
ioctl still returns success, leaving userspace to wait on a invalid
syncobj.
Instead of silently ignoring an invalid non-zero out_sync, move the syncobj
lookup to the submission and make it fail with -ENOENT up front, mirroring
the syncobj validation already done for in_sync. Now,
v3d_submit_process_post_deps() only does the fence replacement.
Note that the lookup is skipped when the multi-sync extension is in use,
since args->out_sync is unused in that case.
To keep cleanup symmetric on error paths, convert the function
v3d_put_multisync_post_deps() into a single function that releases the
references that were acquired but never published for both single-sync
and multi-sync.
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com >
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com >
Link: https://patch.msgid.link/20260604-v3d-sched-misc-fixes-v4-11-c068f5bf5ccf@igalia.com
Signed-off-by: Maíra Canal <mcanal@igalia.com >
2026-06-09 14:43:59 -03:00
..
2026-05-08 14:16:04 +10:00
2026-05-28 11:27:53 +02:00
2026-05-04 14:05:04 +10:00
2026-05-04 14:05:04 +10:00
2026-05-06 10:12:25 +10:00
2026-05-04 14:05:04 +10:00
2026-06-08 09:48:42 +03:00
2026-05-04 14:05:04 +10:00
2026-06-04 09:44:09 +02:00
2026-05-29 11:42:47 +02:00
2026-05-28 09:58:36 +02:00
2026-05-28 09:58:36 +02:00
2026-05-04 14:05:04 +10:00
2026-05-28 09:58:36 +02:00
2026-05-12 08:35:00 +02:00
2026-05-19 10:57:25 +02:00
2026-05-29 07:08:30 -04:00
2026-05-29 11:41:53 +02:00
2026-05-29 19:03:10 +02:00
2026-05-08 14:16:04 +10:00
2026-05-08 14:16:04 +10:00
2026-05-08 14:16:04 +10:00
2026-04-17 14:43:29 +02:00
2026-05-04 14:05:04 +10:00
2026-05-28 09:58:36 +02:00
2026-02-23 10:10:34 +01:00
2026-05-28 09:58:36 +02:00
2026-05-08 14:16:04 +10:00
2026-05-08 14:16:04 +10:00
2026-06-07 02:31:01 +03:00
2026-05-29 17:18:10 +02:00
2026-05-29 19:03:10 +02:00
2026-03-26 02:08:04 +01:00
2026-05-08 14:16:04 +10:00
2026-06-08 10:10:09 -07:00
2026-05-28 09:58:36 +02:00
2026-06-05 10:59:08 +01:00
2026-01-28 12:44:28 +10:00
2026-05-28 09:58:36 +02:00
2026-05-19 12:16:16 -04:00
2026-05-22 07:31:55 +01:00
2026-06-02 22:33:10 +02:00
2026-06-09 10:16:48 +02:00
2026-05-04 14:05:04 +10:00
2026-05-04 14:05:04 +10:00
2026-05-04 14:05:04 +10:00
2026-05-28 09:58:36 +02:00
2026-05-04 14:05:04 +10:00
2026-05-29 11:41:54 +02:00
2026-05-08 14:16:04 +10:00
2026-05-29 14:29:19 +02:00
2026-05-29 11:41:54 +02:00
2026-05-29 11:42:46 +02:00
2026-05-08 14:16:04 +10:00
2026-05-29 09:11:26 +02:00
2026-05-14 15:32:29 +02:00
2026-05-05 11:16:39 +02:00
2026-04-15 08:45:00 -07:00
2026-05-04 14:05:04 +10:00
2026-06-09 14:43:59 -03:00
2026-05-04 14:05:04 +10:00
2026-05-29 11:41:54 +02:00
2026-05-26 16:05:53 +08:00
2026-02-21 17:09:51 -08:00
2026-06-03 04:19:10 +03:00
2026-05-04 14:05:04 +10:00
2026-05-08 14:16:04 +10:00
2026-05-29 19:03:10 +02:00
2026-02-22 08:26:33 -08:00
2026-05-19 10:57:26 +02:00
2026-05-04 14:05:04 +10:00
2026-05-29 11:42:34 +02:00
2026-05-04 14:05:04 +10:00
2026-05-29 11:42:45 +02:00
2026-04-21 22:05:51 +08:00
2026-05-04 14:05:04 +10:00
2026-06-08 09:48:42 +03:00
2026-05-29 13:44:01 +02:00
2026-05-04 14:05:04 +10:00
2026-03-03 09:28:31 +01:00
2026-05-04 14:05:04 +10:00
2026-05-29 11:41:50 +02:00
2026-05-29 11:42:34 +02:00
2026-05-04 14:05:04 +10:00
2026-05-04 14:05:04 +10:00
2026-03-25 15:05:22 +01:00
2026-05-04 14:05:04 +10:00
2026-02-21 17:09:51 -08:00
2026-06-04 09:44:11 +02:00
2026-05-29 11:42:46 +02:00
2026-05-29 09:09:37 +02:00
2026-05-06 11:22:15 +02:00
2026-04-16 09:08:42 +02:00
2026-05-25 10:45:38 +02:00
2026-05-28 09:58:36 +02:00
2026-03-26 14:09:26 +01:00
2026-02-21 01:02:28 -08:00
2026-05-05 14:04:29 +03:00
2026-05-04 14:05:04 +10:00
2026-03-25 15:05:22 +01:00
2026-03-26 14:35:18 +08:00
2026-04-27 11:27:22 +02:00
2026-04-03 10:11:04 +02:00
2026-04-09 09:34:28 +02:00
2026-05-29 19:03:10 +02:00
2026-05-07 14:07:36 -04:00
2026-05-25 10:45:38 +02:00
2026-04-02 08:24:55 +02:00
2026-02-21 20:03:00 -08:00
2026-05-04 14:05:04 +10:00
2026-04-24 10:12:16 -07:00
2026-05-29 11:42:45 +02:00
2026-05-04 14:05:04 +10:00
2026-02-21 17:09:51 -08:00
2026-05-04 14:05:04 +10:00
2026-02-21 01:02:28 -08:00
2026-05-19 10:57:26 +02:00
2026-03-17 15:39:07 +01:00
2026-05-07 14:07:36 -04:00
2026-05-26 16:00:32 +02:00
2026-06-04 09:44:10 +02:00
2026-02-21 20:03:00 -08:00
2026-02-21 20:03:00 -08:00
2026-03-23 13:23:29 +08:00
2026-06-03 11:24:52 +02:00
2026-02-21 17:09:51 -08:00
2026-02-09 09:41:09 +01:00
2026-02-21 17:09:51 -08:00
2026-03-05 19:38:55 -05:00
2026-04-24 08:43:42 -04:00
2026-04-24 08:43:42 -04:00
2026-04-24 08:43:42 -04:00
2026-05-04 14:05:04 +10:00
2026-05-04 14:05:04 +10:00
2026-03-03 10:37:29 +10:00
2026-05-18 11:19:59 +01:00
2026-02-21 17:09:51 -08:00
2026-05-04 14:05:04 +10:00
2026-03-27 13:40:44 +02:00
2026-02-21 17:09:51 -08:00
2026-02-23 16:14:19 +01:00
2026-04-01 07:32:05 +10:00
2026-03-24 16:19:04 +01:00
2026-03-12 07:23:23 -07:00