From 136100c2f00b590bc9485100cce012282c1217cf Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 10 Oct 2017 13:02:20 -0700 Subject: igt/syncobj_wait: Don't close the timeline early in wait_snapshot Closing the sw_sync timeline now signals any remaining fences upon it; but test_wait_snapshot requires the fence to continue to be busy so that the __syncobj_wait() will return with -ETIME. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103188 References: ea4d5a270b57 ("dma-buf/sw_sync: force signal all unsignaled fences on dying timeline") Reviewed-by: Chris Wilson Tested-by: Chris Wilson Signed-off-by: Chris Wilson --- tests/syncobj_wait.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/syncobj_wait.c') diff --git a/tests/syncobj_wait.c b/tests/syncobj_wait.c index 5fd37808..49e6d372 100644 --- a/tests/syncobj_wait.c +++ b/tests/syncobj_wait.c @@ -525,7 +525,7 @@ test_wait_snapshot(int fd, uint32_t test_flags) { struct wait_thread_data wait = { 0 }; uint32_t syncobjs[2]; - int timelines[2] = { -1, -1 }; + int timelines[3] = { -1, -1, -1 }; pthread_t thread; syncobjs[0] = syncobj_create(fd, 0); @@ -570,8 +570,7 @@ test_wait_snapshot(int fd, uint32_t test_flags) * the kernel picks up on the new fence (it shouldn't), we'll get a * timeout. */ - close(timelines[0]); - timelines[0] = syncobj_attach_sw_sync(fd, syncobjs[0]); + timelines[2] = syncobj_attach_sw_sync(fd, syncobjs[0]); sleep_nsec(SHORT_TIME_NSEC / 5); @@ -589,6 +588,7 @@ test_wait_snapshot(int fd, uint32_t test_flags) close(timelines[0]); close(timelines[1]); + close(timelines[2]); syncobj_destroy(fd, syncobjs[0]); syncobj_destroy(fd, syncobjs[1]); } -- cgit v1.2.3