Commit a5a678c8 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

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: default avatarJeff Dike <jdike@linux.intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 009ec2a9
...@@ -251,7 +251,7 @@ void default_idle(void) ...@@ -251,7 +251,7 @@ void default_idle(void)
void cpu_idle(void) void cpu_idle(void)
{ {
cpu_tasks[current_thread->cpu].pid = os_getpid(); cpu_tasks[current_thread_info()->cpu].pid = os_getpid();
default_idle(); default_idle();
} }
...@@ -269,7 +269,7 @@ int user_context(unsigned long sp) ...@@ -269,7 +269,7 @@ int user_context(unsigned long sp)
unsigned long stack; unsigned long stack;
stack = sp & (PAGE_MASK << CONFIG_KERNEL_STACK_ORDER); stack = sp & (PAGE_MASK << CONFIG_KERNEL_STACK_ORDER);
return stack != (unsigned long) current_thread; return stack != (unsigned long) current_thread_info();
} }
extern exitcall_t __uml_exitcall_begin, __uml_exitcall_end; extern exitcall_t __uml_exitcall_begin, __uml_exitcall_end;
...@@ -311,7 +311,7 @@ int strlen_user_proc(char __user *str) ...@@ -311,7 +311,7 @@ int strlen_user_proc(char __user *str)
int smp_sigio_handler(void) int smp_sigio_handler(void)
{ {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
int cpu = current_thread->cpu; int cpu = current_thread_info()->cpu;
IPI_handler(cpu); IPI_handler(cpu);
if (cpu != 0) if (cpu != 0)
return 1; return 1;
...@@ -321,7 +321,7 @@ int smp_sigio_handler(void) ...@@ -321,7 +321,7 @@ int smp_sigio_handler(void)
int cpu(void) int cpu(void)
{ {
return current_thread->cpu; return current_thread_info()->cpu;
} }
static atomic_t using_sysemu = ATOMIC_INIT(0); static atomic_t using_sysemu = ATOMIC_INIT(0);
......
...@@ -168,12 +168,13 @@ static int copy_sc_from_user(struct pt_regs *regs, ...@@ -168,12 +168,13 @@ static int copy_sc_from_user(struct pt_regs *regs,
struct sigcontext __user *from) struct sigcontext __user *from)
{ {
struct sigcontext sc; struct sigcontext sc;
int err; int err, pid;
err = copy_from_user(&sc, from, sizeof(sc)); err = copy_from_user(&sc, from, sizeof(sc));
if (err) if (err)
return err; return err;
pid = userspace_pid[current_thread_info()->cpu];
copy_sc(&regs->regs, &sc); copy_sc(&regs->regs, &sc);
if (have_fpx_regs) { if (have_fpx_regs) {
struct user_fxsr_struct fpx; struct user_fxsr_struct fpx;
...@@ -187,8 +188,7 @@ static int copy_sc_from_user(struct pt_regs *regs, ...@@ -187,8 +188,7 @@ static int copy_sc_from_user(struct pt_regs *regs,
if (err) if (err)
return 1; return 1;
err = restore_fpx_registers(userspace_pid[current_thread->cpu], err = restore_fpx_registers(pid, (unsigned long *) &fpx);
(unsigned long *) &fpx);
if (err < 0) { if (err < 0) {
printk(KERN_ERR "copy_sc_from_user - " printk(KERN_ERR "copy_sc_from_user - "
"restore_fpx_registers failed, errno = %d\n", "restore_fpx_registers failed, errno = %d\n",
...@@ -204,8 +204,7 @@ static int copy_sc_from_user(struct pt_regs *regs, ...@@ -204,8 +204,7 @@ static int copy_sc_from_user(struct pt_regs *regs,
if (err) if (err)
return 1; return 1;
err = restore_fp_registers(userspace_pid[current_thread->cpu], err = restore_fp_registers(pid, (unsigned long *) &fp);
(unsigned long *) &fp);
if (err < 0) { if (err < 0) {
printk(KERN_ERR "copy_sc_from_user - " printk(KERN_ERR "copy_sc_from_user - "
"restore_fp_registers failed, errno = %d\n", "restore_fp_registers failed, errno = %d\n",
...@@ -223,7 +222,7 @@ static int copy_sc_to_user(struct sigcontext __user *to, ...@@ -223,7 +222,7 @@ static int copy_sc_to_user(struct sigcontext __user *to,
{ {
struct sigcontext sc; struct sigcontext sc;
struct faultinfo * fi = &current->thread.arch.faultinfo; struct faultinfo * fi = &current->thread.arch.faultinfo;
int err; int err, pid;
sc.gs = REGS_GS(regs->regs.gp); sc.gs = REGS_GS(regs->regs.gp);
sc.fs = REGS_FS(regs->regs.gp); sc.fs = REGS_FS(regs->regs.gp);
...@@ -249,11 +248,11 @@ static int copy_sc_to_user(struct sigcontext __user *to, ...@@ -249,11 +248,11 @@ static int copy_sc_to_user(struct sigcontext __user *to,
to_fp = (to_fp ? to_fp : (struct _fpstate __user *) (to + 1)); to_fp = (to_fp ? to_fp : (struct _fpstate __user *) (to + 1));
sc.fpstate = to_fp; sc.fpstate = to_fp;
pid = userspace_pid[current_thread_info()->cpu];
if (have_fpx_regs) { if (have_fpx_regs) {
struct user_fxsr_struct fpx; struct user_fxsr_struct fpx;
err = save_fpx_registers(userspace_pid[current_thread->cpu], err = save_fpx_registers(pid, (unsigned long *) &fpx);
(unsigned long *) &fpx);
if (err < 0){ if (err < 0){
printk(KERN_ERR "copy_sc_to_user - save_fpx_registers " printk(KERN_ERR "copy_sc_to_user - save_fpx_registers "
"failed, errno = %d\n", err); "failed, errno = %d\n", err);
...@@ -276,8 +275,7 @@ static int copy_sc_to_user(struct sigcontext __user *to, ...@@ -276,8 +275,7 @@ static int copy_sc_to_user(struct sigcontext __user *to,
else { else {
struct user_i387_struct fp; struct user_i387_struct fp;
err = save_fp_registers(userspace_pid[current_thread->cpu], err = save_fp_registers(pid, (unsigned long *) &fp);
(unsigned long *) &fp);
if (copy_to_user(to_fp, &fp, sizeof(struct user_i387_struct))) if (copy_to_user(to_fp, &fp, sizeof(struct user_i387_struct)))
return 1; return 1;
} }
......
...@@ -81,7 +81,7 @@ static int copy_sc_from_user(struct pt_regs *regs, ...@@ -81,7 +81,7 @@ static int copy_sc_from_user(struct pt_regs *regs,
if (err) if (err)
return 1; return 1;
err = restore_fp_registers(userspace_pid[current_thread->cpu], err = restore_fp_registers(userspace_pid[current_thread_info()->cpu],
(unsigned long *) &fp); (unsigned long *) &fp);
if (err < 0) { if (err < 0) {
printk(KERN_ERR "copy_sc_from_user - " printk(KERN_ERR "copy_sc_from_user - "
...@@ -143,7 +143,7 @@ static int copy_sc_to_user(struct sigcontext __user *to, ...@@ -143,7 +143,7 @@ static int copy_sc_to_user(struct sigcontext __user *to,
if (err) if (err)
return 1; return 1;
err = save_fp_registers(userspace_pid[current_thread->cpu], err = save_fp_registers(userspace_pid[current_thread_info()->cpu],
(unsigned long *) &fp); (unsigned long *) &fp);
if (err < 0) { if (err < 0) {
printk(KERN_ERR "copy_sc_from_user - restore_fp_registers " printk(KERN_ERR "copy_sc_from_user - restore_fp_registers "
......
/* /*
* Copyright (C) 2000 Jeff Dike (jdike@karaya.com) * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
* Licensed under the GPL * Licensed under the GPL
*/ */
#ifndef __UM_CURRENT_H #ifndef __UM_CURRENT_H
#define __UM_CURRENT_H #define __UM_CURRENT_H
#ifndef __ASSEMBLY__
#include "asm/page.h"
#include "linux/thread_info.h" #include "linux/thread_info.h"
#define current (current_thread_info()->task) #define current (current_thread_info()->task)
/*Backward compatibility - it's used inside arch/um.*/
#define current_thread current_thread_info()
#endif /* __ASSEMBLY__ */
#endif #endif
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
/* /*
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com) * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
* Licensed under the GPL * Licensed under the GPL
*/ */
...@@ -76,8 +76,8 @@ static inline struct thread_info *current_thread_info(void) ...@@ -76,8 +76,8 @@ static inline struct thread_info *current_thread_info(void)
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */ #define TIF_SYSCALL_TRACE 0 /* syscall trace active */
#define TIF_SIGPENDING 1 /* signal pending */ #define TIF_SIGPENDING 1 /* signal pending */
#define TIF_NEED_RESCHED 2 /* rescheduling necessary */ #define TIF_NEED_RESCHED 2 /* rescheduling necessary */
#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling
* TIF_NEED_RESCHED * TIF_NEED_RESCHED
*/ */
#define TIF_RESTART_BLOCK 4 #define TIF_RESTART_BLOCK 4
#define TIF_MEMDIE 5 #define TIF_MEMDIE 5
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment