Skip to content

Commit 0879970

Browse files
Al Virogregkh
authored andcommitted
fdget(), trivial conversions
[ Upstream commit 6348be0 ] fdget() is the first thing done in scope, all matching fdput() are immediately followed by leaving the scope. Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Stable-dep-of: 66052a7 ("fanotify: call fanotify_events_supported() before path_permission() and security_path_notify()") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 8bd4c0b commit 0879970

31 files changed

Lines changed: 164 additions & 339 deletions

File tree

arch/powerpc/kvm/book3s_64_vio.c

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,9 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
115115
struct iommu_table_group *table_group;
116116
long i;
117117
struct kvmppc_spapr_tce_iommu_table *stit;
118-
struct fd f;
118+
CLASS(fd, f)(tablefd);
119119

120-
f = fdget(tablefd);
121-
if (!fd_file(f))
120+
if (fd_empty(f))
122121
return -EBADF;
123122

124123
rcu_read_lock();
@@ -130,16 +129,12 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
130129
}
131130
rcu_read_unlock();
132131

133-
if (!found) {
134-
fdput(f);
132+
if (!found)
135133
return -EINVAL;
136-
}
137134

138135
table_group = iommu_group_get_iommudata(grp);
139-
if (WARN_ON(!table_group)) {
140-
fdput(f);
136+
if (WARN_ON(!table_group))
141137
return -EFAULT;
142-
}
143138

144139
for (i = 0; i < IOMMU_TABLE_GROUP_MAX_TABLES; ++i) {
145140
struct iommu_table *tbltmp = table_group->tables[i];
@@ -160,10 +155,8 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
160155
break;
161156
}
162157
}
163-
if (!tbl) {
164-
fdput(f);
158+
if (!tbl)
165159
return -EINVAL;
166-
}
167160

168161
rcu_read_lock();
169162
list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
@@ -174,23 +167,20 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
174167
/* stit is being destroyed */
175168
iommu_tce_table_put(tbl);
176169
rcu_read_unlock();
177-
fdput(f);
178170
return -ENOTTY;
179171
}
180172
/*
181173
* The table is already known to this KVM, we just increased
182174
* its KVM reference counter and can return.
183175
*/
184176
rcu_read_unlock();
185-
fdput(f);
186177
return 0;
187178
}
188179
rcu_read_unlock();
189180

190181
stit = kzalloc(sizeof(*stit), GFP_KERNEL);
191182
if (!stit) {
192183
iommu_tce_table_put(tbl);
193-
fdput(f);
194184
return -ENOMEM;
195185
}
196186

@@ -199,7 +189,6 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
199189

200190
list_add_rcu(&stit->next, &stt->iommu_tables);
201191

202-
fdput(f);
203192
return 0;
204193
}
205194

arch/powerpc/kvm/powerpc.c

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,31 +1930,28 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
19301930
#endif
19311931
#ifdef CONFIG_KVM_MPIC
19321932
case KVM_CAP_IRQ_MPIC: {
1933-
struct fd f;
1933+
CLASS(fd, f)(cap->args[0]);
19341934
struct kvm_device *dev;
19351935

19361936
r = -EBADF;
1937-
f = fdget(cap->args[0]);
1938-
if (!fd_file(f))
1937+
if (fd_empty(f))
19391938
break;
19401939

19411940
r = -EPERM;
19421941
dev = kvm_device_from_filp(fd_file(f));
19431942
if (dev)
19441943
r = kvmppc_mpic_connect_vcpu(dev, vcpu, cap->args[1]);
19451944

1946-
fdput(f);
19471945
break;
19481946
}
19491947
#endif
19501948
#ifdef CONFIG_KVM_XICS
19511949
case KVM_CAP_IRQ_XICS: {
1952-
struct fd f;
1950+
CLASS(fd, f)(cap->args[0]);
19531951
struct kvm_device *dev;
19541952

19551953
r = -EBADF;
1956-
f = fdget(cap->args[0]);
1957-
if (!fd_file(f))
1954+
if (fd_empty(f))
19581955
break;
19591956

19601957
r = -EPERM;
@@ -1965,34 +1962,27 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
19651962
else
19661963
r = kvmppc_xics_connect_vcpu(dev, vcpu, cap->args[1]);
19671964
}
1968-
1969-
fdput(f);
19701965
break;
19711966
}
19721967
#endif /* CONFIG_KVM_XICS */
19731968
#ifdef CONFIG_KVM_XIVE
19741969
case KVM_CAP_PPC_IRQ_XIVE: {
1975-
struct fd f;
1970+
CLASS(fd, f)(cap->args[0]);
19761971
struct kvm_device *dev;
19771972

19781973
r = -EBADF;
1979-
f = fdget(cap->args[0]);
1980-
if (!fd_file(f))
1974+
if (fd_empty(f))
19811975
break;
19821976

19831977
r = -ENXIO;
1984-
if (!xive_enabled()) {
1985-
fdput(f);
1978+
if (!xive_enabled())
19861979
break;
1987-
}
19881980

19891981
r = -EPERM;
19901982
dev = kvm_device_from_filp(fd_file(f));
19911983
if (dev)
19921984
r = kvmppc_xive_native_connect_vcpu(dev, vcpu,
19931985
cap->args[1]);
1994-
1995-
fdput(f);
19961986
break;
19971987
}
19981988
#endif /* CONFIG_KVM_XIVE */

arch/powerpc/platforms/cell/spu_syscalls.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,10 @@ SYSCALL_DEFINE4(spu_create, const char __user *, name, unsigned int, flags,
6464
return -ENOSYS;
6565

6666
if (flags & SPU_CREATE_AFFINITY_SPU) {
67-
struct fd neighbor = fdget(neighbor_fd);
67+
CLASS(fd, neighbor)(neighbor_fd);
6868
ret = -EBADF;
69-
if (fd_file(neighbor)) {
69+
if (!fd_empty(neighbor))
7070
ret = calls->create_thread(name, flags, mode, fd_file(neighbor));
71-
fdput(neighbor);
72-
}
7371
} else
7472
ret = calls->create_thread(name, flags, mode, NULL);
7573

arch/x86/kernel/cpu/sgx/main.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -903,19 +903,15 @@ static struct miscdevice sgx_dev_provision = {
903903
int sgx_set_attribute(unsigned long *allowed_attributes,
904904
unsigned int attribute_fd)
905905
{
906-
struct fd f = fdget(attribute_fd);
906+
CLASS(fd, f)(attribute_fd);
907907

908-
if (!fd_file(f))
908+
if (fd_empty(f))
909909
return -EINVAL;
910910

911-
if (fd_file(f)->f_op != &sgx_provision_fops) {
912-
fdput(f);
911+
if (fd_file(f)->f_op != &sgx_provision_fops)
913912
return -EINVAL;
914-
}
915913

916914
*allowed_attributes |= SGX_ATTR_PROVISIONKEY;
917-
918-
fdput(f);
919915
return 0;
920916
}
921917
EXPORT_SYMBOL_GPL(sgx_set_attribute);

arch/x86/kvm/svm/sev.c

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -533,17 +533,12 @@ static int sev_bind_asid(struct kvm *kvm, unsigned int handle, int *error)
533533

534534
static int __sev_issue_cmd(int fd, int id, void *data, int *error)
535535
{
536-
struct fd f;
537-
int ret;
536+
CLASS(fd, f)(fd);
538537

539-
f = fdget(fd);
540-
if (!fd_file(f))
538+
if (fd_empty(f))
541539
return -EBADF;
542540

543-
ret = sev_issue_cmd_external_user(fd_file(f), id, data, error);
544-
545-
fdput(f);
546-
return ret;
541+
return sev_issue_cmd_external_user(fd_file(f), id, data, error);
547542
}
548543

549544
static int sev_issue_cmd(struct kvm *kvm, int id, void *data, int *error)
@@ -2089,23 +2084,21 @@ int sev_vm_move_enc_context_from(struct kvm *kvm, unsigned int source_fd)
20892084
{
20902085
struct kvm_sev_info *dst_sev = &to_kvm_svm(kvm)->sev_info;
20912086
struct kvm_sev_info *src_sev, *cg_cleanup_sev;
2092-
struct fd f = fdget(source_fd);
2087+
CLASS(fd, f)(source_fd);
20932088
struct kvm *source_kvm;
20942089
bool charged = false;
20952090
int ret;
20962091

2097-
if (!fd_file(f))
2092+
if (fd_empty(f))
20982093
return -EBADF;
20992094

2100-
if (!file_is_kvm(fd_file(f))) {
2101-
ret = -EBADF;
2102-
goto out_fput;
2103-
}
2095+
if (!file_is_kvm(fd_file(f)))
2096+
return -EBADF;
21042097

21052098
source_kvm = fd_file(f)->private_data;
21062099
ret = sev_lock_two_vms(kvm, source_kvm);
21072100
if (ret)
2108-
goto out_fput;
2101+
return ret;
21092102

21102103
if (kvm->arch.vm_type != source_kvm->arch.vm_type ||
21112104
sev_guest(kvm) || !sev_guest(source_kvm)) {
@@ -2152,8 +2145,6 @@ int sev_vm_move_enc_context_from(struct kvm *kvm, unsigned int source_fd)
21522145
cg_cleanup_sev->misc_cg = NULL;
21532146
out_unlock:
21542147
sev_unlock_two_vms(kvm, source_kvm);
2155-
out_fput:
2156-
fdput(f);
21572148
return ret;
21582149
}
21592150

@@ -2817,23 +2808,21 @@ int sev_mem_enc_unregister_region(struct kvm *kvm,
28172808

28182809
int sev_vm_copy_enc_context_from(struct kvm *kvm, unsigned int source_fd)
28192810
{
2820-
struct fd f = fdget(source_fd);
2811+
CLASS(fd, f)(source_fd);
28212812
struct kvm *source_kvm;
28222813
struct kvm_sev_info *source_sev, *mirror_sev;
28232814
int ret;
28242815

2825-
if (!fd_file(f))
2816+
if (fd_empty(f))
28262817
return -EBADF;
28272818

2828-
if (!file_is_kvm(fd_file(f))) {
2829-
ret = -EBADF;
2830-
goto e_source_fput;
2831-
}
2819+
if (!file_is_kvm(fd_file(f)))
2820+
return -EBADF;
28322821

28332822
source_kvm = fd_file(f)->private_data;
28342823
ret = sev_lock_two_vms(kvm, source_kvm);
28352824
if (ret)
2836-
goto e_source_fput;
2825+
return ret;
28372826

28382827
/*
28392828
* Mirrors of mirrors should work, but let's not get silly. Also
@@ -2876,8 +2865,6 @@ int sev_vm_copy_enc_context_from(struct kvm *kvm, unsigned int source_fd)
28762865

28772866
e_unlock:
28782867
sev_unlock_two_vms(kvm, source_kvm);
2879-
e_source_fput:
2880-
fdput(f);
28812868
return ret;
28822869
}
28832870

drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,26 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,
3535
int fd,
3636
int32_t priority)
3737
{
38-
struct fd f = fdget(fd);
38+
CLASS(fd, f)(fd);
3939
struct amdgpu_fpriv *fpriv;
4040
struct amdgpu_ctx_mgr *mgr;
4141
struct amdgpu_ctx *ctx;
4242
uint32_t id;
4343
int r;
4444

45-
if (!fd_file(f))
45+
if (fd_empty(f))
4646
return -EINVAL;
4747

4848
r = amdgpu_file_to_fpriv(fd_file(f), &fpriv);
49-
if (r) {
50-
fdput(f);
49+
if (r)
5150
return r;
52-
}
5351

5452
mgr = &fpriv->ctx_mgr;
5553
mutex_lock(&mgr->lock);
5654
idr_for_each_entry(&mgr->ctx_handles, ctx, id)
5755
amdgpu_ctx_priority_override(ctx, priority);
5856
mutex_unlock(&mgr->lock);
5957

60-
fdput(f);
6158
return 0;
6259
}
6360

@@ -66,31 +63,25 @@ static int amdgpu_sched_context_priority_override(struct amdgpu_device *adev,
6663
unsigned ctx_id,
6764
int32_t priority)
6865
{
69-
struct fd f = fdget(fd);
66+
CLASS(fd, f)(fd);
7067
struct amdgpu_fpriv *fpriv;
7168
struct amdgpu_ctx *ctx;
7269
int r;
7370

74-
if (!fd_file(f))
71+
if (fd_empty(f))
7572
return -EINVAL;
7673

7774
r = amdgpu_file_to_fpriv(fd_file(f), &fpriv);
78-
if (r) {
79-
fdput(f);
75+
if (r)
8076
return r;
81-
}
8277

8378
ctx = amdgpu_ctx_get(fpriv, ctx_id);
8479

85-
if (!ctx) {
86-
fdput(f);
80+
if (!ctx)
8781
return -EINVAL;
88-
}
8982

9083
amdgpu_ctx_priority_override(ctx, priority);
9184
amdgpu_ctx_put(ctx);
92-
fdput(f);
93-
9485
return 0;
9586
}
9687

drivers/gpu/drm/drm_syncobj.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -712,16 +712,14 @@ static int drm_syncobj_fd_to_handle(struct drm_file *file_private,
712712
int fd, u32 *handle)
713713
{
714714
struct drm_syncobj *syncobj;
715-
struct fd f = fdget(fd);
715+
CLASS(fd, f)(fd);
716716
int ret;
717717

718-
if (!fd_file(f))
718+
if (fd_empty(f))
719719
return -EINVAL;
720720

721-
if (fd_file(f)->f_op != &drm_syncobj_file_fops) {
722-
fdput(f);
721+
if (fd_file(f)->f_op != &drm_syncobj_file_fops)
723722
return -EINVAL;
724-
}
725723

726724
/* take a reference to put in the idr */
727725
syncobj = fd_file(f)->private_data;
@@ -739,7 +737,6 @@ static int drm_syncobj_fd_to_handle(struct drm_file *file_private,
739737
} else
740738
drm_syncobj_put(syncobj);
741739

742-
fdput(f);
743740
return ret;
744741
}
745742

0 commit comments

Comments
 (0)