Commit fb386243 authored by Al Viro's avatar Al Viro
Browse files

drm_syncobj: switch to fdget()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 95ce0bce
Loading
Loading
Loading
Loading
+6 −7
Original line number Original line Diff line number Diff line
@@ -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;
}
}