On Fri, Feb 26, 2016 at 03:31:46PM -0300, Gustavo Padovan wrote:
+no_fences:
- info->num_fences = sync_file->num_fences;
- if (copy_to_user((void __user *)arg, info, len))
- if (copy_to_user((void __user *)arg, info, sizeof(*info))) ret = -EFAULT; else ret = 0;
We need to kfree(fence_info) here.
diff --git a/drivers/staging/android/uapi/sync.h b/drivers/staging/android/uapi/sync.h index f0b41ce..9aad623 100644 --- a/drivers/staging/android/uapi/sync.h +++ b/drivers/staging/android/uapi/sync.h @@ -42,21 +42,20 @@ struct sync_fence_info {
/**
- struct sync_file_info - data returned from fence info ioctl
- @len: ioctl caller writes the size of the buffer its passing in.
ioctl returns length of sync_file_info returned to
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
- @len: ioctl caller writes the size of the buffer its passing in.
ioctl returns length of all fence_infos summed.
- @sync_fence_info: array of sync_fence_info for every fence in the sync_file
The documentation needs updating.
*/ struct sync_file_info {
- __u32 len; char name[32]; __s32 status; __u32 num_fences;
- __u32 len;
- __u8 sync_fence_info[0];
- __u64 sync_fence_info;
};
regards, dan carpenter