[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