summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2016-05-20 20:00:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-20 20:58:30 -0400
commit5f56a5dfdb9bcb3bca03df59980d4d2f012cbb53 (patch)
tree72f4f35d7d23295902f14fcb6687be1e172ae48f /arch
parent2ec656eb4054ce55e6d453b8614ef9669e84c542 (diff)
exit_thread: remove empty bodies
Define HAVE_EXIT_THREAD for archs which want to do something in exit_thread. For others, let's define exit_thread as an empty inline. This is a cleanup before we change the prototype of exit_thread to accept a task parameter. [akpm@linux-foundation.org: fix mips] Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: "David S. Miller" <davem@davemloft.net> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Aurelien Jacquiot <a-jacquiot@ti.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Chen Liqin <liqin.linux@gmail.com> Cc: Chris Metcalf <cmetcalf@mellanox.com> Cc: Chris Zankel <chris@zankel.net> Cc: David Howells <dhowells@redhat.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> Cc: Haavard Skinnemoen <hskinnemoen@gmail.com> Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Helge Deller <deller@gmx.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: James Hogan <james.hogan@imgtec.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Jiri Slaby <jslaby@suse.cz> Cc: Jonas Bonn <jonas@southpole.se> Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com> Cc: Lennox Wu <lennox.wu@gmail.com> Cc: Ley Foon Tan <lftan@altera.com> Cc: Mark Salter <msalter@redhat.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Matt Turner <mattst88@gmail.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Michal Simek <monstr@monstr.eu> Cc: Mikael Starvik <starvik@axis.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Rich Felker <dalias@libc.org> Cc: Richard Henderson <rth@twiddle.net> Cc: Richard Kuo <rkuo@codeaurora.org> Cc: Richard Weinberger <richard@nod.at> Cc: Russell King <linux@arm.linux.org.uk> Cc: Steven Miao <realmz6@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Tony Luck <tony.luck@intel.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig5
-rw-r--r--arch/alpha/kernel/process.c8
-rw-r--r--arch/arc/kernel/process.c7
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm64/kernel/process.c7
-rw-r--r--arch/avr32/Kconfig1
-rw-r--r--arch/blackfin/include/asm/processor.h7
-rw-r--r--arch/c6x/kernel/process.c4
-rw-r--r--arch/cris/Kconfig1
-rw-r--r--arch/cris/arch-v10/kernel/process.c9
-rw-r--r--arch/frv/include/asm/processor.h7
-rw-r--r--arch/h8300/include/asm/processor.h7
-rw-r--r--arch/hexagon/kernel/process.c7
-rw-r--r--arch/ia64/Kconfig1
-rw-r--r--arch/m32r/kernel/process.c9
-rw-r--r--arch/m68k/include/asm/processor.h7
-rw-r--r--arch/metag/Kconfig1
-rw-r--r--arch/metag/include/asm/processor.h2
-rw-r--r--arch/microblaze/include/asm/processor.h10
-rw-r--r--arch/mips/kernel/process.c4
-rw-r--r--arch/mn10300/Kconfig1
-rw-r--r--arch/nios2/include/asm/processor.h5
-rw-r--r--arch/openrisc/include/asm/processor.h9
-rw-r--r--arch/parisc/kernel/process.c7
-rw-r--r--arch/powerpc/kernel/process.c4
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/score/kernel/process.c2
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/kernel/process_32.c7
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/tile/Kconfig1
-rw-r--r--arch/um/kernel/process.c4
-rw-r--r--arch/unicore32/kernel/process.c7
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--arch/xtensa/Kconfig1
35 files changed, 17 insertions, 140 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 81869a5e7e17..0f298f9123dc 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -517,6 +517,11 @@ config HAVE_ARCH_MMAP_RND_BITS
517 - ARCH_MMAP_RND_BITS_MIN 517 - ARCH_MMAP_RND_BITS_MIN
518 - ARCH_MMAP_RND_BITS_MAX 518 - ARCH_MMAP_RND_BITS_MAX
519 519
520config HAVE_EXIT_THREAD
521 bool
522 help
523 An architecture implements exit_thread.
524
520config ARCH_MMAP_RND_BITS_MIN 525config ARCH_MMAP_RND_BITS_MIN
521 int 526 int
522 527
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index 84d13263ce46..b483156698d5 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -210,14 +210,6 @@ start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
210} 210}
211EXPORT_SYMBOL(start_thread); 211EXPORT_SYMBOL(start_thread);
212 212
213/*
214 * Free current thread data structures etc..
215 */
216void
217exit_thread(void)
218{
219}
220
221void 213void
222flush_thread(void) 214flush_thread(void)
223{ 215{
diff --git a/arch/arc/kernel/process.c b/arch/arc/kernel/process.c
index a3f750e76b68..b5db9e7fd649 100644
--- a/arch/arc/kernel/process.c
+++ b/arch/arc/kernel/process.c
@@ -183,13 +183,6 @@ void flush_thread(void)
183{ 183{
184} 184}
185 185
186/*
187 * Free any architecture-specific thread data structures, etc.
188 */
189void exit_thread(void)
190{
191}
192
193int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) 186int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu)
194{ 187{
195 return 0; 188 return 0;
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index b99d25b4133e..956d3575426c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -50,6 +50,7 @@ config ARM
50 select HAVE_DMA_CONTIGUOUS if MMU 50 select HAVE_DMA_CONTIGUOUS if MMU
51 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) && !CPU_ENDIAN_BE32 && MMU 51 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) && !CPU_ENDIAN_BE32 && MMU
52 select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU 52 select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
53 select HAVE_EXIT_THREAD
53 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL) 54 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
54 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) 55 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
55 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) 56 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 48eea6866c67..6cd2612236dc 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -200,13 +200,6 @@ void show_regs(struct pt_regs * regs)
200 __show_regs(regs); 200 __show_regs(regs);
201} 201}
202 202
203/*
204 * Free current thread data structures etc..
205 */
206void exit_thread(void)
207{
208}
209
210static void tls_thread_flush(void) 203static void tls_thread_flush(void)
211{ 204{
212 asm ("msr tpidr_el0, xzr"); 205 asm ("msr tpidr_el0, xzr");
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 18b88779e701..e43519a2ca89 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -4,6 +4,7 @@ config AVR32
4 # that we usually don't need on AVR32. 4 # that we usually don't need on AVR32.
5 select EXPERT 5 select EXPERT
6 select HAVE_CLK 6 select HAVE_CLK
7 select HAVE_EXIT_THREAD
7 select HAVE_OPROFILE 8 select HAVE_OPROFILE
8 select HAVE_KPROBES 9 select HAVE_KPROBES
9 select VIRT_TO_BUS 10 select VIRT_TO_BUS
diff --git a/arch/blackfin/include/asm/processor.h b/arch/blackfin/include/asm/processor.h
index 7acd46653df3..0c265aba94ad 100644
--- a/arch/blackfin/include/asm/processor.h
+++ b/arch/blackfin/include/asm/processor.h
@@ -76,13 +76,6 @@ static inline void release_thread(struct task_struct *dead_task)
76} 76}
77 77
78/* 78/*
79 * Free current thread data structures etc..
80 */
81static inline void exit_thread(void)
82{
83}
84
85/*
86 * Return saved PC of a blocked thread. 79 * Return saved PC of a blocked thread.
87 */ 80 */
88#define thread_saved_pc(tsk) (tsk->thread.pc) 81#define thread_saved_pc(tsk) (tsk->thread.pc)
diff --git a/arch/c6x/kernel/process.c b/arch/c6x/kernel/process.c
index 3ae9f5a166a0..0ee7686a78f3 100644
--- a/arch/c6x/kernel/process.c
+++ b/arch/c6x/kernel/process.c
@@ -82,10 +82,6 @@ void flush_thread(void)
82{ 82{
83} 83}
84 84
85void exit_thread(void)
86{
87}
88
89/* 85/*
90 * Do necessary setup to start up a newly executed thread. 86 * Do necessary setup to start up a newly executed thread.
91 */ 87 */
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 99bda1ba3d2f..5c0ca8ae9293 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -59,6 +59,7 @@ config CRIS
59 select GENERIC_IOMAP 59 select GENERIC_IOMAP
60 select MODULES_USE_ELF_RELA 60 select MODULES_USE_ELF_RELA
61 select CLONE_BACKWARDS2 61 select CLONE_BACKWARDS2
62 select HAVE_EXIT_THREAD if ETRAX_ARCH_V32
62 select OLD_SIGSUSPEND 63 select OLD_SIGSUSPEND
63 select OLD_SIGACTION 64 select OLD_SIGACTION
64 select GPIOLIB 65 select GPIOLIB
diff --git a/arch/cris/arch-v10/kernel/process.c b/arch/cris/arch-v10/kernel/process.c
index 02b783457be0..96e5afef6b47 100644
--- a/arch/cris/arch-v10/kernel/process.c
+++ b/arch/cris/arch-v10/kernel/process.c
@@ -35,15 +35,6 @@ void default_idle(void)
35 local_irq_enable(); 35 local_irq_enable();
36} 36}
37 37
38/*
39 * Free current thread data structures etc..
40 */
41
42void exit_thread(void)
43{
44 /* Nothing needs to be done. */
45}
46
47/* if the watchdog is enabled, we can simply disable interrupts and go 38/* if the watchdog is enabled, we can simply disable interrupts and go
48 * into an eternal loop, and the watchdog will reset the CPU after 0.1s 39 * into an eternal loop, and the watchdog will reset the CPU after 0.1s
49 * if on the other hand the watchdog wasn't enabled, we just enable it and wait 40 * if on the other hand the watchdog wasn't enabled, we just enable it and wait
diff --git a/arch/frv/include/asm/processor.h b/arch/frv/include/asm/processor.h
index ae8d423e79d9..73f0a79ad8e6 100644
--- a/arch/frv/include/asm/processor.h
+++ b/arch/frv/include/asm/processor.h
@@ -97,13 +97,6 @@ extern asmlinkage void *restore_user_regs(const struct user_context *target, ...
97#define forget_segments() do { } while (0) 97#define forget_segments() do { } while (0)
98 98
99/* 99/*
100 * Free current thread data structures etc..
101 */
102static inline void exit_thread(void)
103{
104}
105
106/*
107 * Return saved PC of a blocked thread. 100 * Return saved PC of a blocked thread.
108 */ 101 */
109extern unsigned long thread_saved_pc(struct task_struct *tsk); 102extern unsigned long thread_saved_pc(struct task_struct *tsk);
diff --git a/arch/h8300/include/asm/processor.h b/arch/h8300/include/asm/processor.h
index 54e3fd83c336..111df7397ac7 100644
--- a/arch/h8300/include/asm/processor.h
+++ b/arch/h8300/include/asm/processor.h
@@ -111,13 +111,6 @@ static inline void release_thread(struct task_struct *dead_task)
111} 111}
112 112
113/* 113/*
114 * Free current thread data structures etc..
115 */
116static inline void exit_thread(void)
117{
118}
119
120/*
121 * Return saved PC of a blocked thread. 114 * Return saved PC of a blocked thread.
122 */ 115 */
123unsigned long thread_saved_pc(struct task_struct *tsk); 116unsigned long thread_saved_pc(struct task_struct *tsk);
diff --git a/arch/hexagon/kernel/process.c b/arch/hexagon/kernel/process.c
index a9ebd471823a..d9edfd3fc52a 100644
--- a/arch/hexagon/kernel/process.c
+++ b/arch/hexagon/kernel/process.c
@@ -137,13 +137,6 @@ void release_thread(struct task_struct *dead_task)
137} 137}
138 138
139/* 139/*
140 * Free any architecture-specific thread data structures, etc.
141 */
142void exit_thread(void)
143{
144}
145
146/*
147 * Some archs flush debug and FPU info here 140 * Some archs flush debug and FPU info here
148 */ 141 */
149void flush_thread(void) 142void flush_thread(void)
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index b534ebab36ea..f80758cb7157 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -18,6 +18,7 @@ config IA64
18 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 18 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
19 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI 19 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
20 select HAVE_UNSTABLE_SCHED_CLOCK 20 select HAVE_UNSTABLE_SCHED_CLOCK
21 select HAVE_EXIT_THREAD
21 select HAVE_IDE 22 select HAVE_IDE
22 select HAVE_OPROFILE 23 select HAVE_OPROFILE
23 select HAVE_KPROBES 24 select HAVE_KPROBES
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
index e69221d581d5..a88b1f01e91f 100644
--- a/arch/m32r/kernel/process.c
+++ b/arch/m32r/kernel/process.c
@@ -101,15 +101,6 @@ void show_regs(struct pt_regs * regs)
101#endif 101#endif
102} 102}
103 103
104/*
105 * Free current thread data structures etc..
106 */
107void exit_thread(void)
108{
109 /* Nothing to do. */
110 DPRINTK("pid = %d\n", current->pid);
111}
112
113void flush_thread(void) 104void flush_thread(void)
114{ 105{
115 DPRINTK("pid = %d\n", current->pid); 106 DPRINTK("pid = %d\n", current->pid);
diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h
index 20dda1d4b860..a6ce2ec8d693 100644
--- a/arch/m68k/include/asm/processor.h
+++ b/arch/m68k/include/asm/processor.h
@@ -153,13 +153,6 @@ static inline void release_thread(struct task_struct *dead_task)
153{ 153{
154} 154}
155 155
156/*
157 * Free current thread data structures etc..
158 */
159static inline void exit_thread(void)
160{
161}
162
163extern unsigned long thread_saved_pc(struct task_struct *tsk); 156extern unsigned long thread_saved_pc(struct task_struct *tsk);
164 157
165unsigned long get_wchan(struct task_struct *p); 158unsigned long get_wchan(struct task_struct *p);
diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig
index a0fa88da3e31..e47a08d72819 100644
--- a/arch/metag/Kconfig
+++ b/arch/metag/Kconfig
@@ -11,6 +11,7 @@ config METAG
11 select HAVE_DEBUG_KMEMLEAK 11 select HAVE_DEBUG_KMEMLEAK
12 select HAVE_DEBUG_STACKOVERFLOW 12 select HAVE_DEBUG_STACKOVERFLOW
13 select HAVE_DYNAMIC_FTRACE 13 select HAVE_DYNAMIC_FTRACE
14 select HAVE_EXIT_THREAD
14 select HAVE_FTRACE_MCOUNT_RECORD 15 select HAVE_FTRACE_MCOUNT_RECORD
15 select HAVE_FUNCTION_TRACER 16 select HAVE_FUNCTION_TRACER
16 select HAVE_KERNEL_BZIP2 17 select HAVE_KERNEL_BZIP2
diff --git a/arch/metag/include/asm/processor.h b/arch/metag/include/asm/processor.h
index 0838ca699764..a0333ebcac35 100644
--- a/arch/metag/include/asm/processor.h
+++ b/arch/metag/include/asm/processor.h
@@ -134,8 +134,6 @@ static inline void release_thread(struct task_struct *dead_task)
134#define copy_segments(tsk, mm) do { } while (0) 134#define copy_segments(tsk, mm) do { } while (0)
135#define release_segments(mm) do { } while (0) 135#define release_segments(mm) do { } while (0)
136 136
137extern void exit_thread(void);
138
139/* 137/*
140 * Return saved PC of a blocked thread. 138 * Return saved PC of a blocked thread.
141 */ 139 */
diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
index 497a988d79c2..c38d0dd91134 100644
--- a/arch/microblaze/include/asm/processor.h
+++ b/arch/microblaze/include/asm/processor.h
@@ -70,11 +70,6 @@ static inline void release_thread(struct task_struct *dead_task)
70{ 70{
71} 71}
72 72
73/* Free all resources held by a thread. */
74static inline void exit_thread(void)
75{
76}
77
78extern unsigned long thread_saved_pc(struct task_struct *t); 73extern unsigned long thread_saved_pc(struct task_struct *t);
79 74
80extern unsigned long get_wchan(struct task_struct *p); 75extern unsigned long get_wchan(struct task_struct *p);
@@ -127,11 +122,6 @@ static inline void release_thread(struct task_struct *dead_task)
127{ 122{
128} 123}
129 124
130/* Free current thread data structures etc. */
131static inline void exit_thread(void)
132{
133}
134
135/* Return saved (kernel) PC of a blocked thread. */ 125/* Return saved (kernel) PC of a blocked thread. */
136# define thread_saved_pc(tsk) \ 126# define thread_saved_pc(tsk) \
137 ((tsk)->thread.regs ? (tsk)->thread.regs->r15 : 0) 127 ((tsk)->thread.regs ? (tsk)->thread.regs->r15 : 0)
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index a6b3dc54260a..411c971e3417 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -73,10 +73,6 @@ void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
73 regs->regs[29] = sp; 73 regs->regs[29] = sp;
74} 74}
75 75
76void exit_thread(void)
77{
78}
79
80int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) 76int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
81{ 77{
82 /* 78 /*
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 06ddb5501ab1..9627e81a6cbb 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -1,5 +1,6 @@
1config MN10300 1config MN10300
2 def_bool y 2 def_bool y
3 select HAVE_EXIT_THREAD
3 select HAVE_OPROFILE 4 select HAVE_OPROFILE
4 select HAVE_UID16 5 select HAVE_UID16
5 select GENERIC_IRQ_SHOW 6 select GENERIC_IRQ_SHOW
diff --git a/arch/nios2/include/asm/processor.h b/arch/nios2/include/asm/processor.h
index c2ba45c159c7..1c953f0cadbf 100644
--- a/arch/nios2/include/asm/processor.h
+++ b/arch/nios2/include/asm/processor.h
@@ -75,11 +75,6 @@ static inline void release_thread(struct task_struct *dead_task)
75{ 75{
76} 76}
77 77
78/* Free current thread data structures etc.. */
79static inline void exit_thread(void)
80{
81}
82
83/* Return saved PC of a blocked thread. */ 78/* Return saved PC of a blocked thread. */
84#define thread_saved_pc(tsk) ((tsk)->thread.kregs->ea) 79#define thread_saved_pc(tsk) ((tsk)->thread.kregs->ea)
85 80
diff --git a/arch/openrisc/include/asm/processor.h b/arch/openrisc/include/asm/processor.h
index 4d235e3d2534..70334c9f7d24 100644
--- a/arch/openrisc/include/asm/processor.h
+++ b/arch/openrisc/include/asm/processor.h
@@ -85,15 +85,6 @@ void release_thread(struct task_struct *);
85unsigned long get_wchan(struct task_struct *p); 85unsigned long get_wchan(struct task_struct *p);
86 86
87/* 87/*
88 * Free current thread data structures etc..
89 */
90
91extern inline void exit_thread(void)
92{
93 /* Nothing needs to be done. */
94}
95
96/*
97 * Return saved PC of a blocked thread. For now, this is the "user" PC 88 * Return saved PC of a blocked thread. For now, this is the "user" PC
98 */ 89 */
99extern unsigned long thread_saved_pc(struct task_struct *t); 90extern unsigned long thread_saved_pc(struct task_struct *t);
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c
index 809905a811ed..40639439d8b3 100644
--- a/arch/parisc/kernel/process.c
+++ b/arch/parisc/kernel/process.c
@@ -144,13 +144,6 @@ void machine_power_off(void)
144void (*pm_power_off)(void) = machine_power_off; 144void (*pm_power_off)(void) = machine_power_off;
145EXPORT_SYMBOL(pm_power_off); 145EXPORT_SYMBOL(pm_power_off);
146 146
147/*
148 * Free current thread data structures etc..
149 */
150void exit_thread(void)
151{
152}
153
154void flush_thread(void) 147void flush_thread(void)
155{ 148{
156 /* Only needs to handle fpu stuff or perf monitors. 149 /* Only needs to handle fpu stuff or perf monitors.
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index ea8a28fd6f31..e2f12cbcade9 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1329,10 +1329,6 @@ void show_regs(struct pt_regs * regs)
1329 show_instructions(regs); 1329 show_instructions(regs);
1330} 1330}
1331 1331
1332void exit_thread(void)
1333{
1334}
1335
1336void flush_thread(void) 1332void flush_thread(void)
1337{ 1333{
1338#ifdef CONFIG_HAVE_HW_BREAKPOINT 1334#ifdef CONFIG_HAVE_HW_BREAKPOINT
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index de0fcc08dff5..e2c9aaaf64b2 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -134,6 +134,7 @@ config S390
134 select HAVE_DMA_API_DEBUG 134 select HAVE_DMA_API_DEBUG
135 select HAVE_DYNAMIC_FTRACE 135 select HAVE_DYNAMIC_FTRACE
136 select HAVE_DYNAMIC_FTRACE_WITH_REGS 136 select HAVE_DYNAMIC_FTRACE_WITH_REGS
137 select HAVE_EXIT_THREAD
137 select HAVE_FTRACE_MCOUNT_RECORD 138 select HAVE_FTRACE_MCOUNT_RECORD
138 select HAVE_FUNCTION_GRAPH_TRACER 139 select HAVE_FUNCTION_GRAPH_TRACER
139 select HAVE_FUNCTION_TRACER 140 select HAVE_FUNCTION_TRACER
diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
index a1519ad3d49d..aae9480706c2 100644
--- a/arch/score/kernel/process.c
+++ b/arch/score/kernel/process.c
@@ -56,8 +56,6 @@ void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp)
56 regs->regs[0] = sp; 56 regs->regs[0] = sp;
57} 57}
58 58
59void exit_thread(void) {}
60
61/* 59/*
62 * When a process does an "exec", machine state like FPU and debug 60 * When a process does an "exec", machine state like FPU and debug
63 * registers need to be reset. This is a hook function for that. 61 * registers need to be reset. This is a hook function for that.
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 7ed20fc3fc81..cb93af8f8017 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -71,6 +71,7 @@ config SUPERH32
71 71
72config SUPERH64 72config SUPERH64
73 def_bool ARCH = "sh64" 73 def_bool ARCH = "sh64"
74 select HAVE_EXIT_THREAD
74 select KALLSYMS 75 select KALLSYMS
75 76
76config ARCH_DEFCONFIG 77config ARCH_DEFCONFIG
diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c
index 2885fc9d9dcd..ee12e9451874 100644
--- a/arch/sh/kernel/process_32.c
+++ b/arch/sh/kernel/process_32.c
@@ -76,13 +76,6 @@ void start_thread(struct pt_regs *regs, unsigned long new_pc,
76} 76}
77EXPORT_SYMBOL(start_thread); 77EXPORT_SYMBOL(start_thread);
78 78
79/*
80 * Free current thread data structures etc..
81 */
82void exit_thread(void)
83{
84}
85
86void flush_thread(void) 79void flush_thread(void)
87{ 80{
88 struct task_struct *tsk = current; 81 struct task_struct *tsk = current;
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index db0a26cffa97..27b3a0ad40a0 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -20,6 +20,7 @@ config SPARC
20 select HAVE_OPROFILE 20 select HAVE_OPROFILE
21 select HAVE_ARCH_KGDB if !SMP || SPARC64 21 select HAVE_ARCH_KGDB if !SMP || SPARC64
22 select HAVE_ARCH_TRACEHOOK 22 select HAVE_ARCH_TRACEHOOK
23 select HAVE_EXIT_THREAD
23 select SYSCTL_EXCEPTION_TRACE 24 select SYSCTL_EXCEPTION_TRACE
24 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 25 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
25 select RTC_CLASS 26 select RTC_CLASS
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 81719302b056..174746225577 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -3,6 +3,7 @@
3 3
4config TILE 4config TILE
5 def_bool y 5 def_bool y
6 select HAVE_EXIT_THREAD
6 select HAVE_PERF_EVENTS 7 select HAVE_PERF_EVENTS
7 select USE_PMC if PERF_EVENTS 8 select USE_PMC if PERF_EVENTS
8 select HAVE_DMA_API_DEBUG 9 select HAVE_DMA_API_DEBUG
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index 48af59aae129..0b04711f1f18 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -103,10 +103,6 @@ void interrupt_end(void)
103 tracehook_notify_resume(regs); 103 tracehook_notify_resume(regs);
104} 104}
105 105
106void exit_thread(void)
107{
108}
109
110int get_current_pid(void) 106int get_current_pid(void)
111{ 107{
112 return task_pid_nr(current); 108 return task_pid_nr(current);
diff --git a/arch/unicore32/kernel/process.c b/arch/unicore32/kernel/process.c
index b008e9961465..00299c927852 100644
--- a/arch/unicore32/kernel/process.c
+++ b/arch/unicore32/kernel/process.c
@@ -201,13 +201,6 @@ void show_regs(struct pt_regs *regs)
201 __backtrace(); 201 __backtrace();
202} 202}
203 203
204/*
205 * Free current thread data structures etc..
206 */
207void exit_thread(void)
208{
209}
210
211void flush_thread(void) 204void flush_thread(void)
212{ 205{
213 struct thread_info *thread = current_thread_info(); 206 struct thread_info *thread = current_thread_info();
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index ace79d2da2c3..8ff5b3be95d4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -105,6 +105,7 @@ config X86
105 select HAVE_DYNAMIC_FTRACE 105 select HAVE_DYNAMIC_FTRACE
106 select HAVE_DYNAMIC_FTRACE_WITH_REGS 106 select HAVE_DYNAMIC_FTRACE_WITH_REGS
107 select HAVE_EFFICIENT_UNALIGNED_ACCESS 107 select HAVE_EFFICIENT_UNALIGNED_ACCESS
108 select HAVE_EXIT_THREAD
108 select HAVE_FENTRY if X86_64 109 select HAVE_FENTRY if X86_64
109 select HAVE_FTRACE_MCOUNT_RECORD 110 select HAVE_FTRACE_MCOUNT_RECORD
110 select HAVE_FUNCTION_GRAPH_FP_TEST 111 select HAVE_FUNCTION_GRAPH_FP_TEST
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 85257afe71c3..64336f666fb6 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -14,6 +14,7 @@ config XTENSA
14 select GENERIC_PCI_IOMAP 14 select GENERIC_PCI_IOMAP
15 select GENERIC_SCHED_CLOCK 15 select GENERIC_SCHED_CLOCK
16 select HAVE_DMA_API_DEBUG 16 select HAVE_DMA_API_DEBUG
17 select HAVE_EXIT_THREAD
17 select HAVE_FUNCTION_TRACER 18 select HAVE_FUNCTION_TRACER
18 select HAVE_FUTEX_CMPXCHG if !MMU 19 select HAVE_FUTEX_CMPXCHG if !MMU
19 select HAVE_HW_BREAKPOINT if PERF_EVENTS 20 select HAVE_HW_BREAKPOINT if PERF_EVENTS