[PATCH i-g-t 1/2] lib/syncobj: Make running under Valgrind quiet

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Tue Feb 25 12:44:53 UTC 2025


Explicitly initialise ioctl arguments so Valgrind can know we are not
passing in uninitialised memory to the kernel.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
---
 lib/igt_syncobj.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/lib/igt_syncobj.c b/lib/igt_syncobj.c
index a53393bd7245..5a1226b6e19d 100644
--- a/lib/igt_syncobj.c
+++ b/lib/igt_syncobj.c
@@ -197,14 +197,12 @@ int
 syncobj_wait_err(int fd, uint32_t *handles, uint32_t count,
 		 uint64_t abs_timeout_nsec, uint32_t flags)
 {
-	struct drm_syncobj_wait wait;
+	struct drm_syncobj_wait wait = { };
 
 	wait.handles = to_user_pointer(handles);
 	wait.timeout_nsec = abs_timeout_nsec;
 	wait.count_handles = count;
 	wait.flags = flags;
-	wait.first_signaled = 0;
-	wait.pad = 0;
 
 	return __syncobj_wait(fd, &wait);
 }
@@ -227,15 +225,13 @@ syncobj_wait(int fd, uint32_t *handles, uint32_t count,
 	     uint64_t abs_timeout_nsec, uint32_t flags,
 	     uint32_t *first_signaled)
 {
-	struct drm_syncobj_wait wait;
+	struct drm_syncobj_wait wait = { };
 	int ret;
 
 	wait.handles = to_user_pointer(handles);
 	wait.timeout_nsec = abs_timeout_nsec;
 	wait.count_handles = count;
 	wait.flags = flags;
-	wait.first_signaled = 0;
-	wait.pad = 0;
 
 	ret = __syncobj_wait(fd, &wait);
 	if (ret == -ETIME)
@@ -356,7 +352,7 @@ __syncobj_timeline_wait(int fd, uint32_t *handles, uint64_t *points,
 			int64_t timeout_nsec, unsigned flags,
 			uint32_t *first_signaled)
 {
-	struct drm_syncobj_timeline_wait args;
+	struct drm_syncobj_timeline_wait args = { };
 	int ret;
 
 	args.handles = to_user_pointer(handles);
@@ -364,8 +360,6 @@ __syncobj_timeline_wait(int fd, uint32_t *handles, uint64_t *points,
 	args.timeout_nsec = timeout_nsec;
 	args.count_handles = num_handles;
 	args.flags = flags;
-	args.first_signaled = 0;
-	args.pad = 0;
 
 	ret = igt_ioctl(fd, DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT, &args);
 	if (ret < 0) {
@@ -424,13 +418,12 @@ static int
 __syncobj_timeline_query(int fd, uint32_t *handles, uint64_t *points,
 			 uint32_t handle_count)
 {
-	struct drm_syncobj_timeline_array args;
+	struct drm_syncobj_timeline_array args = { };
 	int ret;
 
 	args.handles = to_user_pointer(handles);
 	args.points = to_user_pointer(points);
 	args.count_handles = handle_count;
-	args.flags = 0;
 
 	ret = igt_ioctl(fd, DRM_IOCTL_SYNCOBJ_QUERY, &args);
 	if (ret) {
@@ -464,7 +457,7 @@ __syncobj_transfer(int fd,
 		   uint32_t handle_src, uint64_t point_src,
 		   uint32_t flags)
 {
-	struct drm_syncobj_transfer args;
+	struct drm_syncobj_transfer args = { };
 	int ret;
 
 	args.src_handle = handle_src;
@@ -472,7 +465,6 @@ __syncobj_transfer(int fd,
 	args.src_point = point_src;
 	args.dst_point = point_dst;
 	args.flags = flags;
-	args.pad = 0;
 	ret = igt_ioctl(fd, DRM_IOCTL_SYNCOBJ_TRANSFER, &args);
 	if (ret) {
 		ret = -errno;
@@ -548,14 +540,13 @@ int
 __syncobj_eventfd(int fd, uint32_t handle, uint64_t point, uint32_t flags,
 		  int ev_fd)
 {
-	struct drm_syncobj_eventfd args;
+	struct drm_syncobj_eventfd args = { };
 	int ret;
 
 	args.handle = handle;
 	args.flags = flags;
 	args.point = point;
 	args.fd = ev_fd;
-	args.pad = 0;
 
 	ret = igt_ioctl(fd, DRM_IOCTL_SYNCOBJ_EVENTFD, &args);
 	if (ret) {
-- 
2.48.0



More information about the igt-dev mailing list