From 34195d69ddd03a0fbcc48831cbc5d96f32c3be82 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 12 May 2020 09:17:04 +0100 Subject: [PATCH] iris: Initialise stub iris_seqno to 0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We create a stub never-signaled seqno to force the iris_fence to use the fence fd, but we need to fully initialise the iris_seqno struct so that the unset pointers are NULL and we do not try to destroy them later. ==38644== Conditional jump or move depends on uninitialised value(s) ==38644== at 0xF7FBFAA: pipe_resource_reference (u_inlines.h:142) ==38644== by 0xF7FC22F: iris_seqno_destroy (iris_seqno.c:38) ==38644== by 0xF7E8930: iris_seqno_reference (iris_seqno.h:89) ==38644== by 0xF7E8BC3: iris_fence_destroy (iris_fence.c:131) ==38644== by 0xF7E8C41: iris_fence_reference (iris_fence.c:143) ==38644== by 0xEF24525: dri2_destroy_fence (dri_helpers.c:176) ==38644== by 0x4865DC2: dri2_egl_unref_sync (egl_dri2.c:3302) ==38644== by 0x48661E8: dri2_destroy_sync (egl_dri2.c:3433) ==38644== by 0x4855BA4: _eglDestroySync (eglapi.c:1952) ==38644== by 0x4855CF5: eglDestroySyncKHR (eglapi.c:1972) ==38644== by 0x402628: test_cleanup (egl_khr_fence_sync.c:232) ==38644== by 0x40421E: test_eglCreateSyncKHR_native_from_fd (egl_khr_fence_sync.c:1521) Closes: #2909 Fixes: fd1907efb385a6f66897 ("iris: Convert fences to using lightweight seqno") Reviewed-by: Lionel Landwerlin Reviewed-by: Tapani Pälli Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_fence.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/iris/iris_fence.c b/src/gallium/drivers/iris/iris_fence.c index d4f11886f02..22fe69e9c55 100644 --- a/src/gallium/drivers/iris/iris_fence.c +++ b/src/gallium/drivers/iris/iris_fence.c @@ -466,7 +466,7 @@ iris_fence_create_fd(struct pipe_context *ctx, syncobj->handle = args.handle; pipe_reference_init(&syncobj->ref, 1); - struct iris_seqno *seqno = malloc(sizeof(*seqno)); + struct iris_seqno *seqno = calloc(1, sizeof(*seqno)); if (!seqno) { free(syncobj); *out = NULL; -- 2.30.2