aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/tt/process_kern.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/kernel/tt/process_kern.c')
-rw-r--r--arch/um/kernel/tt/process_kern.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/um/kernel/tt/process_kern.c b/arch/um/kernel/tt/process_kern.c
index cfaa373a6e77..295c1ac817b3 100644
--- a/arch/um/kernel/tt/process_kern.c
+++ b/arch/um/kernel/tt/process_kern.c
@@ -13,13 +13,11 @@
13#include "asm/ptrace.h" 13#include "asm/ptrace.h"
14#include "asm/tlbflush.h" 14#include "asm/tlbflush.h"
15#include "irq_user.h" 15#include "irq_user.h"
16#include "signal_user.h"
17#include "kern_util.h" 16#include "kern_util.h"
18#include "user_util.h" 17#include "user_util.h"
19#include "os.h" 18#include "os.h"
20#include "kern.h" 19#include "kern.h"
21#include "sigcontext.h" 20#include "sigcontext.h"
22#include "time_user.h"
23#include "mem_user.h" 21#include "mem_user.h"
24#include "tlb.h" 22#include "tlb.h"
25#include "mode.h" 23#include "mode.h"
@@ -37,7 +35,7 @@ void switch_to_tt(void *prev, void *next)
37 from = prev; 35 from = prev;
38 to = next; 36 to = next;
39 37
40 cpu = from->thread_info->cpu; 38 cpu = task_thread_info(from)->cpu;
41 if(cpu == 0) 39 if(cpu == 0)
42 forward_interrupts(to->thread.mode.tt.extern_pid); 40 forward_interrupts(to->thread.mode.tt.extern_pid);
43#ifdef CONFIG_SMP 41#ifdef CONFIG_SMP
@@ -254,7 +252,7 @@ int copy_thread_tt(int nr, unsigned long clone_flags, unsigned long sp,
254 252
255 clone_flags &= CLONE_VM; 253 clone_flags &= CLONE_VM;
256 p->thread.temp_stack = stack; 254 p->thread.temp_stack = stack;
257 new_pid = start_fork_tramp(p->thread_info, stack, clone_flags, tramp); 255 new_pid = start_fork_tramp(task_stack_page(p), stack, clone_flags, tramp);
258 if(new_pid < 0){ 256 if(new_pid < 0){
259 printk(KERN_ERR "copy_thread : clone failed - errno = %d\n", 257 printk(KERN_ERR "copy_thread : clone failed - errno = %d\n",
260 -new_pid); 258 -new_pid);
@@ -344,7 +342,7 @@ int do_proc_op(void *t, int proc_id)
344 pid = thread->request.u.exec.pid; 342 pid = thread->request.u.exec.pid;
345 do_exec(thread->mode.tt.extern_pid, pid); 343 do_exec(thread->mode.tt.extern_pid, pid);
346 thread->mode.tt.extern_pid = pid; 344 thread->mode.tt.extern_pid = pid;
347 cpu_tasks[task->thread_info->cpu].pid = pid; 345 cpu_tasks[task_thread_info(task)->cpu].pid = pid;
348 break; 346 break;
349 case OP_FORK: 347 case OP_FORK:
350 attach_process(thread->request.u.fork.pid); 348 attach_process(thread->request.u.fork.pid);
@@ -426,7 +424,7 @@ int start_uml_tt(void)
426 int pages; 424 int pages;
427 425
428 pages = (1 << CONFIG_KERNEL_STACK_ORDER); 426 pages = (1 << CONFIG_KERNEL_STACK_ORDER);
429 sp = (void *) ((unsigned long) init_task.thread_info) + 427 sp = task_stack_page(&init_task) +
430 pages * PAGE_SIZE - sizeof(unsigned long); 428 pages * PAGE_SIZE - sizeof(unsigned long);
431 return(tracer(start_kernel_proc, sp)); 429 return(tracer(start_kernel_proc, sp));
432} 430}