diff options
author | Jiri Slaby <jslaby@suse.cz> | 2016-05-20 20:00:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-20 20:58:30 -0400 |
commit | 5f56a5dfdb9bcb3bca03df59980d4d2f012cbb53 (patch) | |
tree | 72f4f35d7d23295902f14fcb6687be1e172ae48f /arch | |
parent | 2ec656eb4054ce55e6d453b8614ef9669e84c542 (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')
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 | ||
520 | config HAVE_EXIT_THREAD | ||
521 | bool | ||
522 | help | ||
523 | An architecture implements exit_thread. | ||
524 | |||
520 | config ARCH_MMAP_RND_BITS_MIN | 525 | config 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 | } |
211 | EXPORT_SYMBOL(start_thread); | 211 | EXPORT_SYMBOL(start_thread); |
212 | 212 | ||
213 | /* | ||
214 | * Free current thread data structures etc.. | ||
215 | */ | ||
216 | void | ||
217 | exit_thread(void) | ||
218 | { | ||
219 | } | ||
220 | |||
221 | void | 213 | void |
222 | flush_thread(void) | 214 | flush_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 | */ | ||
189 | void exit_thread(void) | ||
190 | { | ||
191 | } | ||
192 | |||
193 | int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) | 186 | int 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 | */ | ||
206 | void exit_thread(void) | ||
207 | { | ||
208 | } | ||
209 | |||
210 | static void tls_thread_flush(void) | 203 | static 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 | */ | ||
81 | static 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 | ||
85 | void 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 | |||
42 | void 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 | */ | ||
102 | static 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 | */ |
109 | extern unsigned long thread_saved_pc(struct task_struct *tsk); | 102 | extern 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 | */ | ||
116 | static 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 | */ |
123 | unsigned long thread_saved_pc(struct task_struct *tsk); | 116 | unsigned 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 | */ | ||
142 | void 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 | */ |
149 | void flush_thread(void) | 142 | void 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 | */ | ||
107 | void exit_thread(void) | ||
108 | { | ||
109 | /* Nothing to do. */ | ||
110 | DPRINTK("pid = %d\n", current->pid); | ||
111 | } | ||
112 | |||
113 | void flush_thread(void) | 104 | void 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 | */ | ||
159 | static inline void exit_thread(void) | ||
160 | { | ||
161 | } | ||
162 | |||
163 | extern unsigned long thread_saved_pc(struct task_struct *tsk); | 156 | extern unsigned long thread_saved_pc(struct task_struct *tsk); |
164 | 157 | ||
165 | unsigned long get_wchan(struct task_struct *p); | 158 | unsigned 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 | ||
137 | extern 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. */ | ||
74 | static inline void exit_thread(void) | ||
75 | { | ||
76 | } | ||
77 | |||
78 | extern unsigned long thread_saved_pc(struct task_struct *t); | 73 | extern unsigned long thread_saved_pc(struct task_struct *t); |
79 | 74 | ||
80 | extern unsigned long get_wchan(struct task_struct *p); | 75 | extern 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. */ | ||
131 | static 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 | ||
76 | void exit_thread(void) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) | 76 | int 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 @@ | |||
1 | config MN10300 | 1 | config 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.. */ | ||
79 | static 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 *); | |||
85 | unsigned long get_wchan(struct task_struct *p); | 85 | unsigned long get_wchan(struct task_struct *p); |
86 | 86 | ||
87 | /* | 87 | /* |
88 | * Free current thread data structures etc.. | ||
89 | */ | ||
90 | |||
91 | extern 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 | */ |
99 | extern unsigned long thread_saved_pc(struct task_struct *t); | 90 | extern 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) | |||
144 | void (*pm_power_off)(void) = machine_power_off; | 144 | void (*pm_power_off)(void) = machine_power_off; |
145 | EXPORT_SYMBOL(pm_power_off); | 145 | EXPORT_SYMBOL(pm_power_off); |
146 | 146 | ||
147 | /* | ||
148 | * Free current thread data structures etc.. | ||
149 | */ | ||
150 | void exit_thread(void) | ||
151 | { | ||
152 | } | ||
153 | |||
154 | void flush_thread(void) | 147 | void 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 | ||
1332 | void exit_thread(void) | ||
1333 | { | ||
1334 | } | ||
1335 | |||
1336 | void flush_thread(void) | 1332 | void 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 | ||
59 | void 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 | ||
72 | config SUPERH64 | 72 | config SUPERH64 |
73 | def_bool ARCH = "sh64" | 73 | def_bool ARCH = "sh64" |
74 | select HAVE_EXIT_THREAD | ||
74 | select KALLSYMS | 75 | select KALLSYMS |
75 | 76 | ||
76 | config ARCH_DEFCONFIG | 77 | config 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 | } |
77 | EXPORT_SYMBOL(start_thread); | 77 | EXPORT_SYMBOL(start_thread); |
78 | 78 | ||
79 | /* | ||
80 | * Free current thread data structures etc.. | ||
81 | */ | ||
82 | void exit_thread(void) | ||
83 | { | ||
84 | } | ||
85 | |||
86 | void flush_thread(void) | 79 | void 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 | ||
4 | config TILE | 4 | config 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 | ||
106 | void exit_thread(void) | ||
107 | { | ||
108 | } | ||
109 | |||
110 | int get_current_pid(void) | 106 | int 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 | */ | ||
207 | void exit_thread(void) | ||
208 | { | ||
209 | } | ||
210 | |||
211 | void flush_thread(void) | 204 | void 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 |