[PATCH i-g-t 1/2] lib/syncobj: Make running under Valgrind quiet
Kamil Konieczny
kamil.konieczny at linux.intel.com
Fri Feb 28 15:55:25 UTC 2025
Hi Tvrtko,
On 2025-02-25 at 12:44:53 +0000, Tvrtko Ursulin wrote:
> 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(-)
Both applied, thanks!
Regards,
Kamil
>
> 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