aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/os-Linux/skas/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/os-Linux/skas/process.c')
-rw-r--r--arch/um/os-Linux/skas/process.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index 8548f126d628..e60d6e6c5a58 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -191,22 +191,23 @@ static int userspace_tramp(void *stack)
191 int fd; 191 int fd;
192 unsigned long long offset; 192 unsigned long long offset;
193 fd = phys_mapping(to_phys(&__syscall_stub_start), &offset); 193 fd = phys_mapping(to_phys(&__syscall_stub_start), &offset);
194 addr = mmap64((void *) UML_CONFIG_STUB_CODE, UM_KERN_PAGE_SIZE, 194 addr = mmap64((void *) STUB_CODE, UM_KERN_PAGE_SIZE,
195 PROT_EXEC, MAP_FIXED | MAP_PRIVATE, fd, offset); 195 PROT_EXEC, MAP_FIXED | MAP_PRIVATE, fd, offset);
196 if (addr == MAP_FAILED) { 196 if (addr == MAP_FAILED) {
197 printk(UM_KERN_ERR "mapping mmap stub failed, " 197 printk(UM_KERN_ERR "mapping mmap stub at 0x%lx failed, "
198 "errno = %d\n", errno); 198 "errno = %d\n", STUB_CODE, errno);
199 exit(1); 199 exit(1);
200 } 200 }
201 201
202 if (stack != NULL) { 202 if (stack != NULL) {
203 fd = phys_mapping(to_phys(stack), &offset); 203 fd = phys_mapping(to_phys(stack), &offset);
204 addr = mmap((void *) UML_CONFIG_STUB_DATA, 204 addr = mmap((void *) STUB_DATA,
205 UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE, 205 UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE,
206 MAP_FIXED | MAP_SHARED, fd, offset); 206 MAP_FIXED | MAP_SHARED, fd, offset);
207 if (addr == MAP_FAILED) { 207 if (addr == MAP_FAILED) {
208 printk(UM_KERN_ERR "mapping segfault stack " 208 printk(UM_KERN_ERR "mapping segfault stack "
209 "failed, errno = %d\n", errno); 209 "at 0x%lx failed, errno = %d\n",
210 STUB_DATA, errno);
210 exit(1); 211 exit(1);
211 } 212 }
212 } 213 }
@@ -214,11 +215,11 @@ static int userspace_tramp(void *stack)
214 if (!ptrace_faultinfo && (stack != NULL)) { 215 if (!ptrace_faultinfo && (stack != NULL)) {
215 struct sigaction sa; 216 struct sigaction sa;
216 217
217 unsigned long v = UML_CONFIG_STUB_CODE + 218 unsigned long v = STUB_CODE +
218 (unsigned long) stub_segv_handler - 219 (unsigned long) stub_segv_handler -
219 (unsigned long) &__syscall_stub_start; 220 (unsigned long) &__syscall_stub_start;
220 221
221 set_sigstack((void *) UML_CONFIG_STUB_DATA, UM_KERN_PAGE_SIZE); 222 set_sigstack((void *) STUB_DATA, UM_KERN_PAGE_SIZE);
222 sigemptyset(&sa.sa_mask); 223 sigemptyset(&sa.sa_mask);
223 sigaddset(&sa.sa_mask, SIGIO); 224 sigaddset(&sa.sa_mask, SIGIO);
224 sigaddset(&sa.sa_mask, SIGWINCH); 225 sigaddset(&sa.sa_mask, SIGWINCH);
@@ -382,10 +383,10 @@ static int __init init_thread_regs(void)
382{ 383{
383 get_safe_registers(thread_regs); 384 get_safe_registers(thread_regs);
384 /* Set parent's instruction pointer to start of clone-stub */ 385 /* Set parent's instruction pointer to start of clone-stub */
385 thread_regs[REGS_IP_INDEX] = UML_CONFIG_STUB_CODE + 386 thread_regs[REGS_IP_INDEX] = STUB_CODE +
386 (unsigned long) stub_clone_handler - 387 (unsigned long) stub_clone_handler -
387 (unsigned long) &__syscall_stub_start; 388 (unsigned long) &__syscall_stub_start;
388 thread_regs[REGS_SP_INDEX] = UML_CONFIG_STUB_DATA + UM_KERN_PAGE_SIZE - 389 thread_regs[REGS_SP_INDEX] = STUB_DATA + UM_KERN_PAGE_SIZE -
389 sizeof(void *); 390 sizeof(void *);
390#ifdef __SIGNAL_FRAMESIZE 391#ifdef __SIGNAL_FRAMESIZE
391 thread_regs[REGS_SP_INDEX] -= __SIGNAL_FRAMESIZE; 392 thread_regs[REGS_SP_INDEX] -= __SIGNAL_FRAMESIZE;
@@ -443,7 +444,7 @@ int copy_context_skas0(unsigned long new_stack, int pid)
443 * child's stack and check it. 444 * child's stack and check it.
444 */ 445 */
445 wait_stub_done(pid); 446 wait_stub_done(pid);
446 if (child_data->err != UML_CONFIG_STUB_DATA) 447 if (child_data->err != STUB_DATA)
447 panic("copy_context_skas0 - stub-child reports error %ld\n", 448 panic("copy_context_skas0 - stub-child reports error %ld\n",
448 child_data->err); 449 child_data->err);
449 450