Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

switch spufs_calls_{get,put}() to CLASS() use

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

+17 -35
+17 -35
arch/powerpc/platforms/cell/spu_syscalls.c
··· 36 36 37 37 static inline void spufs_calls_put(struct spufs_calls *calls) 38 38 { 39 + if (!calls) 40 + return; 41 + 39 42 BUG_ON(calls != spufs_calls); 40 43 41 44 /* we don't need to rcu this, as we hold a reference to the module */ ··· 56 53 57 54 #endif /* CONFIG_SPU_FS_MODULE */ 58 55 56 + DEFINE_CLASS(spufs_calls, struct spufs_calls *, spufs_calls_put(_T), spufs_calls_get(), void) 57 + 59 58 SYSCALL_DEFINE4(spu_create, const char __user *, name, unsigned int, flags, 60 59 umode_t, mode, int, neighbor_fd) 61 60 { 62 - long ret; 63 - struct spufs_calls *calls; 64 - 65 - calls = spufs_calls_get(); 61 + CLASS(spufs_calls, calls)(); 66 62 if (!calls) 67 63 return -ENOSYS; 68 64 69 65 if (flags & SPU_CREATE_AFFINITY_SPU) { 70 66 CLASS(fd, neighbor)(neighbor_fd); 71 - ret = -EBADF; 72 - if (!fd_empty(neighbor)) 73 - ret = calls->create_thread(name, flags, mode, fd_file(neighbor)); 74 - } else 75 - ret = calls->create_thread(name, flags, mode, NULL); 76 - 77 - spufs_calls_put(calls); 78 - return ret; 67 + if (fd_empty(neighbor)) 68 + return -EBADF; 69 + return calls->create_thread(name, flags, mode, fd_file(neighbor)); 70 + } else { 71 + return calls->create_thread(name, flags, mode, NULL); 72 + } 79 73 } 80 74 81 75 SYSCALL_DEFINE3(spu_run,int, fd, __u32 __user *, unpc, __u32 __user *, ustatus) 82 76 { 83 77 long ret; 84 78 struct fd arg; 85 - struct spufs_calls *calls; 86 - 87 - calls = spufs_calls_get(); 79 + CLASS(spufs_calls, calls)(); 88 80 if (!calls) 89 81 return -ENOSYS; 90 82 ··· 89 91 ret = calls->spu_run(fd_file(arg), unpc, ustatus); 90 92 fdput(arg); 91 93 } 92 - 93 - spufs_calls_put(calls); 94 94 return ret; 95 95 } 96 96 97 97 #ifdef CONFIG_COREDUMP 98 98 int elf_coredump_extra_notes_size(void) 99 99 { 100 - struct spufs_calls *calls; 101 - int ret; 102 - 103 - calls = spufs_calls_get(); 100 + CLASS(spufs_calls, calls)(); 104 101 if (!calls) 105 102 return 0; 106 103 107 - ret = calls->coredump_extra_notes_size(); 108 - 109 - spufs_calls_put(calls); 110 - 111 - return ret; 104 + return calls->coredump_extra_notes_size(); 112 105 } 113 106 114 107 int elf_coredump_extra_notes_write(struct coredump_params *cprm) 115 108 { 116 - struct spufs_calls *calls; 117 - int ret; 118 - 119 - calls = spufs_calls_get(); 109 + CLASS(spufs_calls, calls)(); 120 110 if (!calls) 121 111 return 0; 122 112 123 - ret = calls->coredump_extra_notes_write(cprm); 124 - 125 - spufs_calls_put(calls); 126 - 127 - return ret; 113 + return calls->coredump_extra_notes_write(cprm); 128 114 } 129 115 #endif 130 116