Loading drivers/infiniband/core/ucma.c +3 −3 Original line number Diff line number Diff line Loading @@ -1186,13 +1186,13 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file, struct ucma_context *ctx; struct file *filp; struct ucma_file *cur_file; int ret = 0; int ret = 0, fput_needed; if (copy_from_user(&cmd, inbuf, sizeof(cmd))) return -EFAULT; /* Get current fd to protect against it being closed */ filp = fget(cmd.fd); filp = fget_light(cmd.fd, &fput_needed); if (!filp) return -ENOENT; Loading Loading @@ -1231,7 +1231,7 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file, ucma_put_ctx(ctx); file_put: fput(filp); fput_light(filp, fput_needed); return ret; } Loading drivers/infiniband/core/uverbs_cmd.c +4 −9 Original line number Diff line number Diff line Loading @@ -707,7 +707,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, struct ib_xrcd *xrcd = NULL; struct file *f = NULL; struct inode *inode = NULL; int ret = 0; int ret = 0, fput_needed; int new_xrcd = 0; if (out_len < sizeof resp) Loading @@ -724,18 +724,13 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, if (cmd.fd != -1) { /* search for file descriptor */ f = fget(cmd.fd); f = fget_light(cmd.fd, &fput_needed); if (!f) { ret = -EBADF; goto err_tree_mutex_unlock; } inode = f->f_dentry->d_inode; if (!inode) { ret = -EBADF; goto err_tree_mutex_unlock; } xrcd = find_xrcd(file->device, inode); if (!xrcd && !(cmd.oflags & O_CREAT)) { /* no file descriptor. Need CREATE flag */ Loading Loading @@ -801,7 +796,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, } if (f) fput(f); fput_light(f, fput_needed); mutex_lock(&file->mutex); list_add_tail(&obj->uobject.list, &file->ucontext->xrcd_list); Loading Loading @@ -831,7 +826,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, err_tree_mutex_unlock: if (f) fput(f); fput_light(f, fput_needed); mutex_unlock(&file->device->xrcd_tree_mutex); Loading drivers/infiniband/core/uverbs_main.c +3 −2 Original line number Diff line number Diff line Loading @@ -542,8 +542,9 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd) { struct ib_uverbs_event_file *ev_file = NULL; struct file *filp; int fput_needed; filp = fget(fd); filp = fget_light(fd, &fput_needed); if (!filp) return NULL; Loading @@ -559,7 +560,7 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd) kref_get(&ev_file->ref); out: fput(filp); fput_light(filp, fput_needed); return ev_file; } Loading Loading
drivers/infiniband/core/ucma.c +3 −3 Original line number Diff line number Diff line Loading @@ -1186,13 +1186,13 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file, struct ucma_context *ctx; struct file *filp; struct ucma_file *cur_file; int ret = 0; int ret = 0, fput_needed; if (copy_from_user(&cmd, inbuf, sizeof(cmd))) return -EFAULT; /* Get current fd to protect against it being closed */ filp = fget(cmd.fd); filp = fget_light(cmd.fd, &fput_needed); if (!filp) return -ENOENT; Loading Loading @@ -1231,7 +1231,7 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file, ucma_put_ctx(ctx); file_put: fput(filp); fput_light(filp, fput_needed); return ret; } Loading
drivers/infiniband/core/uverbs_cmd.c +4 −9 Original line number Diff line number Diff line Loading @@ -707,7 +707,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, struct ib_xrcd *xrcd = NULL; struct file *f = NULL; struct inode *inode = NULL; int ret = 0; int ret = 0, fput_needed; int new_xrcd = 0; if (out_len < sizeof resp) Loading @@ -724,18 +724,13 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, if (cmd.fd != -1) { /* search for file descriptor */ f = fget(cmd.fd); f = fget_light(cmd.fd, &fput_needed); if (!f) { ret = -EBADF; goto err_tree_mutex_unlock; } inode = f->f_dentry->d_inode; if (!inode) { ret = -EBADF; goto err_tree_mutex_unlock; } xrcd = find_xrcd(file->device, inode); if (!xrcd && !(cmd.oflags & O_CREAT)) { /* no file descriptor. Need CREATE flag */ Loading Loading @@ -801,7 +796,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, } if (f) fput(f); fput_light(f, fput_needed); mutex_lock(&file->mutex); list_add_tail(&obj->uobject.list, &file->ucontext->xrcd_list); Loading Loading @@ -831,7 +826,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file, err_tree_mutex_unlock: if (f) fput(f); fput_light(f, fput_needed); mutex_unlock(&file->device->xrcd_tree_mutex); Loading
drivers/infiniband/core/uverbs_main.c +3 −2 Original line number Diff line number Diff line Loading @@ -542,8 +542,9 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd) { struct ib_uverbs_event_file *ev_file = NULL; struct file *filp; int fput_needed; filp = fget(fd); filp = fget_light(fd, &fput_needed); if (!filp) return NULL; Loading @@ -559,7 +560,7 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd) kref_get(&ev_file->ref); out: fput(filp); fput_light(filp, fput_needed); return ev_file; } Loading