On 03/03/2016 11:40 AM, Gustavo Padovan wrote:
> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
>
> Inform userspace how many fences are in the sync_fence_info field.
>
> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> ---
>   drivers/staging/android/sync.c      | 2 ++
>   drivers/staging/android/uapi/sync.h | 2 ++
>   2 files changed, 4 insertions(+)
>
> 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];
>   };
>

Greg, this is ultimately your call.  But to echo what I said before, I'm 
OK with the ABI break here if that's what's needed to get sync moved out 
of staging.

Pragmatically speaking, this won't break ordinary Android apps, because 
they don't get direct access to sync fence fds to begin with.  Some 
privileged system processes do, but they go through libsync, which can 
be changed to deal with the ABI differences.

Anyway, for the whole series:

Acked-by: Greg Hackmann <ghackmann at google.com>

Reply via email to