diff mbox

[v4,1/5] staging/android: add num_fences field to struct sync_file_info

Message ID 1456511507-2534-1-git-send-email-gustavo@padovan.org (mailing list archive)
State New, archived
Headers show

Commit Message

Gustavo Padovan Feb. 26, 2016, 6:31 p.m. UTC
From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

Inform userspace how many fences are in the sync_fence_info field.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
---
 drivers/staging/android/sync.c      | 2 ++
 drivers/staging/android/uapi/sync.h | 2 ++
 2 files changed, 4 insertions(+)

Comments

Dan Carpenter March 1, 2016, 6:36 a.m. UTC | #1
This breaks userspace.  You used to be able to figure it out from
info->len - sizeof(struct sync_file_info).

regards,
dan carpenter
Gustavo Padovan March 1, 2016, 11:52 a.m. UTC | #2
2016-03-01 Dan Carpenter <dan.carpenter@oracle.com>:

> This breaks userspace.  You used to be able to figure it out from
> info->len - sizeof(struct sync_file_info).

It does. We are breaking this on purpose to clean up the API for
de-staging.

	Gustavo
diff mbox

Patch

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index 3a8f210..31aa462 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -525,6 +525,8 @@  static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
 	if (info->status >= 0)
 		info->status = !info->status;
 
+	info->num_fences = sync_file->num_fences;
+
 	len = sizeof(struct sync_file_info);
 
 	for (i = 0; i < sync_file->num_fences; ++i) {
diff --git a/drivers/staging/android/uapi/sync.h b/drivers/staging/android/uapi/sync.h
index a0cf357..4ffb7cc 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -47,12 +47,14 @@  struct sync_fence_info {
  *		userspace including pt_info.
  * @name:	name of fence
  * @status:	status of fence. 1: signaled 0:active <0:error
+ * @num_fences	number of fences in the sync_file
  * @sync_fence_info: array of sync_fence_info for every fence in the sync_file
  */
 struct sync_file_info {
 	__u32	len;
 	char	name[32];
 	__s32	status;
+	__u32	num_fences;
 
 	__u8	sync_fence_info[0];
 };