]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
um/os-Linux: Use char[] for syscall_stub declarations
authorNicolas Iooss <nicolas.iooss_linux@m4x.org>
Sun, 12 Oct 2014 11:02:13 +0000 (13:02 +0200)
committerRichard Weinberger <richard@nod.at>
Sun, 31 May 2015 11:14:07 +0000 (13:14 +0200)
When declaring __syscall_stub_start, use the same type in UML userspace
code as in arch/um/include/asm/sections.h.

While at it, also declare batch_syscall_stub as char[].

Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/os-Linux/skas/mem.c
arch/um/os-Linux/skas/process.c

index e7f8c945a573ac220dd2c9ed40d7b6594b010f30..35015e3e1e878eb83e27400f1dbe569383f28d7a 100644 (file)
@@ -18,7 +18,7 @@
 #include <sysdep/ptrace.h>
 #include <sysdep/stub.h>
 
-extern unsigned long batch_syscall_stub, __syscall_stub_start;
+extern char batch_syscall_stub[], __syscall_stub_start[];
 
 extern void wait_stub_done(int pid);
 
@@ -38,8 +38,8 @@ static int __init init_syscall_regs(void)
 {
        get_safe_registers(syscall_regs, NULL);
        syscall_regs[REGS_IP_INDEX] = STUB_CODE +
-               ((unsigned long) &batch_syscall_stub -
-                (unsigned long) &__syscall_stub_start);
+               ((unsigned long) batch_syscall_stub -
+                (unsigned long) __syscall_stub_start);
        return 0;
 }
 
index 7a9777570a62c9e52f4c73aaee0e54e8c702bc6a..3dddedba3a07f6ca423d6b8e16d79189cbc799de 100644 (file)
@@ -174,7 +174,7 @@ static void handle_trap(int pid, struct uml_pt_regs *regs,
        handle_syscall(regs);
 }
 
-extern int __syscall_stub_start;
+extern char __syscall_stub_start[];
 
 static int userspace_tramp(void *stack)
 {
@@ -197,7 +197,7 @@ static int userspace_tramp(void *stack)
         * This has a pte, but it can't be mapped in with the usual
         * tlb_flush mechanism because this is part of that mechanism
         */
-       fd = phys_mapping(to_phys(&__syscall_stub_start), &offset);
+       fd = phys_mapping(to_phys(__syscall_stub_start), &offset);
        addr = mmap64((void *) STUB_CODE, UM_KERN_PAGE_SIZE,
                      PROT_EXEC, MAP_FIXED | MAP_PRIVATE, fd, offset);
        if (addr == MAP_FAILED) {
@@ -223,7 +223,7 @@ static int userspace_tramp(void *stack)
 
                unsigned long v = STUB_CODE +
                                  (unsigned long) stub_segv_handler -
-                                 (unsigned long) &__syscall_stub_start;
+                                 (unsigned long) __syscall_stub_start;
 
                set_sigstack((void *) STUB_DATA, UM_KERN_PAGE_SIZE);
                sigemptyset(&sa.sa_mask);
@@ -447,7 +447,7 @@ static int __init init_thread_regs(void)
        /* Set parent's instruction pointer to start of clone-stub */
        thread_regs[REGS_IP_INDEX] = STUB_CODE +
                                (unsigned long) stub_clone_handler -
-                               (unsigned long) &__syscall_stub_start;
+                               (unsigned long) __syscall_stub_start;
        thread_regs[REGS_SP_INDEX] = STUB_DATA + UM_KERN_PAGE_SIZE -
                sizeof(void *);
 #ifdef __SIGNAL_FRAMESIZE