aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2012-10-25 03:10:51 -0400
committerChris Zankel <chris@zankel.net>2012-10-25 18:00:36 -0400
commitf0a1bf0859ffa059f9009d6a17e8d46241fb2161 (patch)
tree9ac202198fd961e3bc7b54bcc9e5501b17bb74ac /arch
parent3306a72669a2af23b324540b08e68e82ac5b7dab (diff)
xtensa: switch to generic kernel_execve()
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/xtensa/Kconfig1
-rw-r--r--arch/xtensa/kernel/entry.S18
2 files changed, 2 insertions, 17 deletions
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 9525b70a13a1..0d1f36a22c98 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -14,6 +14,7 @@ config XTENSA
14 select MODULES_USE_ELF_RELA 14 select MODULES_USE_ELF_RELA
15 select GENERIC_PCI_IOMAP 15 select GENERIC_PCI_IOMAP
16 select GENERIC_KERNEL_THREAD 16 select GENERIC_KERNEL_THREAD
17 select GENERIC_KERNEL_EXECVE
17 select ARCH_WANT_OPTIONAL_GPIOLIB 18 select ARCH_WANT_OPTIONAL_GPIOLIB
18 help 19 help
19 Xtensa processors are 32-bit RISC machines designed by Tensilica 20 Xtensa processors are 32-bit RISC machines designed by Tensilica
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index d4ec1381aebc..90bfc1dbc13d 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -1833,22 +1833,6 @@ ENTRY(system_call)
1833 1833
1834 1834
1835/* 1835/*
1836 * Do a system call from kernel instead of calling sys_execve, so we end up
1837 * with proper pt_regs.
1838 *
1839 * int kernel_execve(const char *fname, char *const argv[], charg *const envp[])
1840 * a2 a2 a3 a4
1841 */
1842
1843ENTRY(kernel_execve)
1844 entry a1, 16
1845 mov a6, a2 # arg0 is in a6
1846 movi a2, __NR_execve
1847 syscall
1848
1849 retw
1850
1851/*
1852 * Task switch. 1836 * Task switch.
1853 * 1837 *
1854 * struct task* _switch_to (struct task* prev, struct task* next) 1838 * struct task* _switch_to (struct task* prev, struct task* next)
@@ -1940,6 +1924,6 @@ ENTRY(ret_from_kernel_thread)
1940 call4 schedule_tail 1924 call4 schedule_tail
1941 mov a6, a3 1925 mov a6, a3
1942 callx4 a2 1926 callx4 a2
1943 call4 do_exit 1927 j common_exception_return
1944 1928
1945ENDPROC(ret_from_kernel_thread) 1929ENDPROC(ret_from_kernel_thread)