Now that eventfd supports __free(), use it in drm_syncobj_eventfd_ioctl(). Signed-off-by: Bence Csokas --- drivers/gpu/drm/drm_syncobj.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index c23a5de27eff..261d5606e8bd 100644 --- a/drivers/gpu/drm/drm_syncobj.c +++ b/drivers/gpu/drm/drm_syncobj.c @@ -1462,9 +1462,9 @@ int drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data, struct drm_file *file_private) { + struct eventfd_ctx *ev_fd_ctx __free(eventfd) = NULL; struct drm_syncobj_eventfd *args = data; struct drm_syncobj *syncobj; - struct eventfd_ctx *ev_fd_ctx; struct syncobj_eventfd_entry *entry; int ret; @@ -1484,16 +1484,17 @@ drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data, ev_fd_ctx = eventfd_ctx_fdget(args->fd); if (IS_ERR(ev_fd_ctx)) { ret = PTR_ERR(ev_fd_ctx); + ev_fd_ctx = NULL; goto err_fdget; } entry = kzalloc_obj(*entry); if (!entry) { ret = -ENOMEM; - goto err_kzalloc; + goto err_fdget; } entry->syncobj = syncobj; - entry->ev_fd_ctx = ev_fd_ctx; + entry->ev_fd_ctx = no_free_ptr(ev_fd_ctx); entry->point = args->point; entry->flags = args->flags; @@ -1502,8 +1503,6 @@ drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data, return 0; -err_kzalloc: - eventfd_ctx_put(ev_fd_ctx); err_fdget: drm_syncobj_put(syncobj); return ret; -- 2.55.0