diff options
Diffstat (limited to 'arch/um/kernel/skas/process.c')
-rw-r--r-- | arch/um/kernel/skas/process.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c index ae4fa71d3b8b..2a69a7ce5792 100644 --- a/arch/um/kernel/skas/process.c +++ b/arch/um/kernel/skas/process.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include "asm/uaccess.h" | 13 | #include "asm/uaccess.h" |
14 | #include "asm/atomic.h" | 14 | #include "asm/atomic.h" |
15 | #include "kern_util.h" | 15 | #include "kern_util.h" |
16 | #include "as-layout.h" | ||
16 | #include "skas.h" | 17 | #include "skas.h" |
17 | #include "os.h" | 18 | #include "os.h" |
18 | #include "user_util.h" | ||
19 | #include "tlb.h" | 19 | #include "tlb.h" |
20 | #include "kern.h" | 20 | #include "kern.h" |
21 | #include "mode.h" | 21 | #include "mode.h" |
@@ -163,8 +163,12 @@ static int start_kernel_proc(void *unused) | |||
163 | 163 | ||
164 | extern int userspace_pid[]; | 164 | extern int userspace_pid[]; |
165 | 165 | ||
166 | extern char cpu0_irqstack[]; | ||
167 | |||
166 | int start_uml_skas(void) | 168 | int start_uml_skas(void) |
167 | { | 169 | { |
170 | stack_protections((unsigned long) &cpu0_irqstack); | ||
171 | set_sigstack(cpu0_irqstack, THREAD_SIZE); | ||
168 | if(proc_mm) | 172 | if(proc_mm) |
169 | userspace_pid[0] = start_userspace(0); | 173 | userspace_pid[0] = start_userspace(0); |
170 | 174 | ||
@@ -178,20 +182,23 @@ int start_uml_skas(void) | |||
178 | 182 | ||
179 | int external_pid_skas(struct task_struct *task) | 183 | int external_pid_skas(struct task_struct *task) |
180 | { | 184 | { |
181 | #warning Need to look up userspace_pid by cpu | 185 | /* FIXME: Need to look up userspace_pid by cpu */ |
182 | return(userspace_pid[0]); | 186 | return(userspace_pid[0]); |
183 | } | 187 | } |
184 | 188 | ||
185 | int thread_pid_skas(struct task_struct *task) | 189 | int thread_pid_skas(struct task_struct *task) |
186 | { | 190 | { |
187 | #warning Need to look up userspace_pid by cpu | 191 | /* FIXME: Need to look up userspace_pid by cpu */ |
188 | return(userspace_pid[0]); | 192 | return(userspace_pid[0]); |
189 | } | 193 | } |
190 | 194 | ||
191 | void kill_off_processes_skas(void) | 195 | void kill_off_processes_skas(void) |
192 | { | 196 | { |
193 | if(proc_mm) | 197 | if(proc_mm) |
194 | #warning need to loop over userspace_pids in kill_off_processes_skas | 198 | /* |
199 | * FIXME: need to loop over userspace_pids in | ||
200 | * kill_off_processes_skas | ||
201 | */ | ||
195 | os_kill_ptraced_process(userspace_pid[0], 1); | 202 | os_kill_ptraced_process(userspace_pid[0], 1); |
196 | else { | 203 | else { |
197 | struct task_struct *p; | 204 | struct task_struct *p; |