xtensa: switch to generic kernel_execve()
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 25 Oct 2012 07:10:51 +0000 (11:10 +0400)
committerChris Zankel <chris@zankel.net>
Thu, 25 Oct 2012 22:00:36 +0000 (15:00 -0700)
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Chris Zankel <chris@zankel.net>
arch/xtensa/Kconfig
arch/xtensa/kernel/entry.S

index 9525b70..0d1f36a 100644 (file)
@@ -14,6 +14,7 @@ config XTENSA
        select MODULES_USE_ELF_RELA
        select GENERIC_PCI_IOMAP
        select GENERIC_KERNEL_THREAD
+       select GENERIC_KERNEL_EXECVE
        select ARCH_WANT_OPTIONAL_GPIOLIB
        help
          Xtensa processors are 32-bit RISC machines designed by Tensilica
index d4ec138..90bfc1d 100644 (file)
@@ -1833,22 +1833,6 @@ ENTRY(system_call)
 
 
 /*
- * Do a system call from kernel instead of calling sys_execve, so we end up
- * with proper pt_regs.
- *
- * int kernel_execve(const char *fname, char *const argv[], charg *const envp[])
- * a2                        a2               a3                  a4
- */
-
-ENTRY(kernel_execve)
-       entry   a1, 16
-       mov     a6, a2                  # arg0 is in a6
-       movi    a2, __NR_execve
-       syscall
-
-       retw
-
-/*
  * Task switch.
  *
  * struct task*  _switch_to (struct task* prev, struct task* next)
@@ -1940,6 +1924,6 @@ ENTRY(ret_from_kernel_thread)
        call4   schedule_tail
        mov     a6, a3
        callx4  a2
-       call4   do_exit
+       j       common_exception_return
 
 ENDPROC(ret_from_kernel_thread)