]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
convert spu_run(2)
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Jun 2024 02:56:21 +0000 (22:56 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Nov 2024 06:28:07 +0000 (01:28 -0500)
all failure exits prior to fdget() are returns, fdput() is immediately
followed by return.

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/powerpc/platforms/cell/spu_syscalls.c

index 64a4c9eac6e0b4425b2f0fab53d7c567773de62b..000894e07b027dc9176bd9596a4f1c2d8ca461b9 100644 (file)
@@ -77,19 +77,15 @@ SYSCALL_DEFINE4(spu_create, const char __user *, name, unsigned int, flags,
 
 SYSCALL_DEFINE3(spu_run,int, fd, __u32 __user *, unpc, __u32 __user *, ustatus)
 {
-       long ret;
-       struct fd arg;
        CLASS(spufs_calls, calls)();
        if (!calls)
                return -ENOSYS;
 
-       ret = -EBADF;
-       arg = fdget(fd);
-       if (fd_file(arg)) {
-               ret = calls->spu_run(fd_file(arg), unpc, ustatus);
-               fdput(arg);
-       }
-       return ret;
+       CLASS(fd, arg)(fd);
+       if (fd_empty(arg))
+               return -EBADF;
+
+       return calls->spu_run(fd_file(arg), unpc, ustatus);
 }
 
 #ifdef CONFIG_COREDUMP