drm_syncobj: switch to fdget()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2019-04-14 12:50:52 -04:00
parent 95ce0bce20
commit fb38624353

View File

@ -388,20 +388,19 @@ static int drm_syncobj_fd_to_handle(struct drm_file *file_private,
int fd, u32 *handle) int fd, u32 *handle)
{ {
struct drm_syncobj *syncobj; struct drm_syncobj *syncobj;
struct file *file; struct fd f = fdget(fd);
int ret; int ret;
file = fget(fd); if (!f.file)
if (!file)
return -EINVAL; return -EINVAL;
if (file->f_op != &drm_syncobj_file_fops) { if (f.file->f_op != &drm_syncobj_file_fops) {
fput(file); fdput(f);
return -EINVAL; return -EINVAL;
} }
/* take a reference to put in the idr */ /* take a reference to put in the idr */
syncobj = file->private_data; syncobj = f.file->private_data;
drm_syncobj_get(syncobj); drm_syncobj_get(syncobj);
idr_preload(GFP_KERNEL); idr_preload(GFP_KERNEL);
@ -416,7 +415,7 @@ static int drm_syncobj_fd_to_handle(struct drm_file *file_private,
} else } else
drm_syncobj_put(syncobj); drm_syncobj_put(syncobj);
fput(file); fdput(f);
return ret; return ret;
} }