Commit a5a678c80beac4d163babda243a27eeb9c89bd89
Committed by
Linus Torvalds
1 parent
009ec2a915
Exists in
master
and in
4 other branches
uml: current.h cleanup
Tidy current-related stuff. There was a comment in current.h saying that current_thread was obsolete, so this patch turns all instances of current_thread into current_thread_info(). There's some simplifying of the result in arch/um/sys-i386/signal.c. current.h and thread_info also get style cleanups. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 5 changed files with 20 additions and 41 deletions Side-by-side Diff
arch/um/kernel/process.c
... | ... | @@ -251,7 +251,7 @@ |
251 | 251 | |
252 | 252 | void cpu_idle(void) |
253 | 253 | { |
254 | - cpu_tasks[current_thread->cpu].pid = os_getpid(); | |
254 | + cpu_tasks[current_thread_info()->cpu].pid = os_getpid(); | |
255 | 255 | default_idle(); |
256 | 256 | } |
257 | 257 | |
... | ... | @@ -269,7 +269,7 @@ |
269 | 269 | unsigned long stack; |
270 | 270 | |
271 | 271 | stack = sp & (PAGE_MASK << CONFIG_KERNEL_STACK_ORDER); |
272 | - return stack != (unsigned long) current_thread; | |
272 | + return stack != (unsigned long) current_thread_info(); | |
273 | 273 | } |
274 | 274 | |
275 | 275 | extern exitcall_t __uml_exitcall_begin, __uml_exitcall_end; |
... | ... | @@ -311,7 +311,7 @@ |
311 | 311 | int smp_sigio_handler(void) |
312 | 312 | { |
313 | 313 | #ifdef CONFIG_SMP |
314 | - int cpu = current_thread->cpu; | |
314 | + int cpu = current_thread_info()->cpu; | |
315 | 315 | IPI_handler(cpu); |
316 | 316 | if (cpu != 0) |
317 | 317 | return 1; |
... | ... | @@ -321,7 +321,7 @@ |
321 | 321 | |
322 | 322 | int cpu(void) |
323 | 323 | { |
324 | - return current_thread->cpu; | |
324 | + return current_thread_info()->cpu; | |
325 | 325 | } |
326 | 326 | |
327 | 327 | static atomic_t using_sysemu = ATOMIC_INIT(0); |
arch/um/sys-i386/signal.c
... | ... | @@ -168,12 +168,13 @@ |
168 | 168 | struct sigcontext __user *from) |
169 | 169 | { |
170 | 170 | struct sigcontext sc; |
171 | - int err; | |
171 | + int err, pid; | |
172 | 172 | |
173 | 173 | err = copy_from_user(&sc, from, sizeof(sc)); |
174 | 174 | if (err) |
175 | 175 | return err; |
176 | 176 | |
177 | + pid = userspace_pid[current_thread_info()->cpu]; | |
177 | 178 | copy_sc(®s->regs, &sc); |
178 | 179 | if (have_fpx_regs) { |
179 | 180 | struct user_fxsr_struct fpx; |
... | ... | @@ -187,8 +188,7 @@ |
187 | 188 | if (err) |
188 | 189 | return 1; |
189 | 190 | |
190 | - err = restore_fpx_registers(userspace_pid[current_thread->cpu], | |
191 | - (unsigned long *) &fpx); | |
191 | + err = restore_fpx_registers(pid, (unsigned long *) &fpx); | |
192 | 192 | if (err < 0) { |
193 | 193 | printk(KERN_ERR "copy_sc_from_user - " |
194 | 194 | "restore_fpx_registers failed, errno = %d\n", |
... | ... | @@ -204,8 +204,7 @@ |
204 | 204 | if (err) |
205 | 205 | return 1; |
206 | 206 | |
207 | - err = restore_fp_registers(userspace_pid[current_thread->cpu], | |
208 | - (unsigned long *) &fp); | |
207 | + err = restore_fp_registers(pid, (unsigned long *) &fp); | |
209 | 208 | if (err < 0) { |
210 | 209 | printk(KERN_ERR "copy_sc_from_user - " |
211 | 210 | "restore_fp_registers failed, errno = %d\n", |
... | ... | @@ -223,7 +222,7 @@ |
223 | 222 | { |
224 | 223 | struct sigcontext sc; |
225 | 224 | struct faultinfo * fi = ¤t->thread.arch.faultinfo; |
226 | - int err; | |
225 | + int err, pid; | |
227 | 226 | |
228 | 227 | sc.gs = REGS_GS(regs->regs.gp); |
229 | 228 | sc.fs = REGS_FS(regs->regs.gp); |
230 | 229 | |
... | ... | @@ -249,11 +248,11 @@ |
249 | 248 | to_fp = (to_fp ? to_fp : (struct _fpstate __user *) (to + 1)); |
250 | 249 | sc.fpstate = to_fp; |
251 | 250 | |
251 | + pid = userspace_pid[current_thread_info()->cpu]; | |
252 | 252 | if (have_fpx_regs) { |
253 | 253 | struct user_fxsr_struct fpx; |
254 | 254 | |
255 | - err = save_fpx_registers(userspace_pid[current_thread->cpu], | |
256 | - (unsigned long *) &fpx); | |
255 | + err = save_fpx_registers(pid, (unsigned long *) &fpx); | |
257 | 256 | if (err < 0){ |
258 | 257 | printk(KERN_ERR "copy_sc_to_user - save_fpx_registers " |
259 | 258 | "failed, errno = %d\n", err); |
... | ... | @@ -276,8 +275,7 @@ |
276 | 275 | else { |
277 | 276 | struct user_i387_struct fp; |
278 | 277 | |
279 | - err = save_fp_registers(userspace_pid[current_thread->cpu], | |
280 | - (unsigned long *) &fp); | |
278 | + err = save_fp_registers(pid, (unsigned long *) &fp); | |
281 | 279 | if (copy_to_user(to_fp, &fp, sizeof(struct user_i387_struct))) |
282 | 280 | return 1; |
283 | 281 | } |
arch/um/sys-x86_64/signal.c
... | ... | @@ -81,7 +81,7 @@ |
81 | 81 | if (err) |
82 | 82 | return 1; |
83 | 83 | |
84 | - err = restore_fp_registers(userspace_pid[current_thread->cpu], | |
84 | + err = restore_fp_registers(userspace_pid[current_thread_info()->cpu], | |
85 | 85 | (unsigned long *) &fp); |
86 | 86 | if (err < 0) { |
87 | 87 | printk(KERN_ERR "copy_sc_from_user - " |
... | ... | @@ -143,7 +143,7 @@ |
143 | 143 | if (err) |
144 | 144 | return 1; |
145 | 145 | |
146 | - err = save_fp_registers(userspace_pid[current_thread->cpu], | |
146 | + err = save_fp_registers(userspace_pid[current_thread_info()->cpu], | |
147 | 147 | (unsigned long *) &fp); |
148 | 148 | if (err < 0) { |
149 | 149 | printk(KERN_ERR "copy_sc_from_user - restore_fp_registers " |
include/asm-um/current.h
1 | -/* | |
2 | - * Copyright (C) 2000 Jeff Dike (jdike@karaya.com) | |
1 | +/* | |
2 | + * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | |
3 | 3 | * Licensed under the GPL |
4 | 4 | */ |
5 | 5 | |
6 | 6 | #ifndef __UM_CURRENT_H |
7 | 7 | #define __UM_CURRENT_H |
8 | 8 | |
9 | -#ifndef __ASSEMBLY__ | |
10 | - | |
11 | -#include "asm/page.h" | |
12 | 9 | #include "linux/thread_info.h" |
13 | 10 | |
14 | 11 | #define current (current_thread_info()->task) |
15 | 12 | |
16 | -/*Backward compatibility - it's used inside arch/um.*/ | |
17 | -#define current_thread current_thread_info() | |
18 | - | |
19 | -#endif /* __ASSEMBLY__ */ | |
20 | - | |
21 | 13 | #endif |
22 | - | |
23 | -/* | |
24 | - * Overrides for Emacs so that we follow Linus's tabbing style. | |
25 | - * Emacs will notice this stuff at the end of the file and automatically | |
26 | - * adjust the settings for this buffer only. This must remain at the end | |
27 | - * of the file. | |
28 | - * --------------------------------------------------------------------------- | |
29 | - * Local variables: | |
30 | - * c-file-style: "linux" | |
31 | - * End: | |
32 | - */ |
include/asm-um/thread_info.h
1 | -/* | |
2 | - * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | |
1 | +/* | |
2 | + * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | |
3 | 3 | * Licensed under the GPL |
4 | 4 | */ |
5 | 5 | |
... | ... | @@ -76,8 +76,8 @@ |
76 | 76 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ |
77 | 77 | #define TIF_SIGPENDING 1 /* signal pending */ |
78 | 78 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ |
79 | -#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling | |
80 | - * TIF_NEED_RESCHED | |
79 | +#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling | |
80 | + * TIF_NEED_RESCHED | |
81 | 81 | */ |
82 | 82 | #define TIF_RESTART_BLOCK 4 |
83 | 83 | #define TIF_MEMDIE 5 |