summaryrefslogtreecommitdiffstats
path: root/libsync
diff options
context:
space:
mode:
authorSaurabh Shah <saurshah@quicinc.com>2017-08-01 13:54:21 -0700
committerMarissa Wall <marissaw@google.com>2017-09-25 15:51:46 -0700
commit90a74600d772ee578aaf5c63005e2d80b0d223c9 (patch)
treef8ac4b2019959b65429abfdc2ad3c52b3574d5c7 /libsync
parent22a10f6766cd3ae07217b9a93c44381f52aa7018 (diff)
downloadsystem_core-90a74600d772ee578aaf5c63005e2d80b0d223c9.tar.gz
system_core-90a74600d772ee578aaf5c63005e2d80b0d223c9.tar.bz2
system_core-90a74600d772ee578aaf5c63005e2d80b0d223c9.zip
sync: store the num_fences from first SYNC_IOC_FILE_INFO
Fixes a bug with the signal time of devices using the modern sync file interface. The bug only affects kernels running an Android kernel 4.9 and later. b/63395253 Test: tests/sync_test.cpp Change-Id: I6fb00bcb8e16a3268c357153edd8e35a44546caa
Diffstat (limited to 'libsync')
-rw-r--r--libsync/sync.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libsync/sync.c b/libsync/sync.c
index e65765894..6b187faed 100644
--- a/libsync/sync.c
+++ b/libsync/sync.c
@@ -217,6 +217,8 @@ static struct sync_file_info *modern_sync_file_info(int fd)
local_info.num_fences * sizeof(struct sync_fence_info));
if (!info)
return NULL;
+
+ info->num_fences = local_info.num_fences;
info->sync_fence_info = (__u64)(uintptr_t)(info + 1);
err = ioctl(fd, SYNC_IOC_FILE_INFO, info);