process.c (98817a84ff1c755c347ac633ff017a623a631fad) process.c (714acdbd1c94e7e3ab90f6b6938f1ccb27b662f0)
1/*
2 * arch/xtensa/kernel/process.c
3 *
4 * Xtensa Processor version.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.

--- 187 unchanged lines hidden (view full) ---

196 * the two threads (parent and child) will overflow the same frames onto the
197 * parent stack at different times, likely corrupting the parent stack (esp.
198 * if the parent returns from functions that called clone() and calls new
199 * ones, before the child overflows its now old copies of its parent windows).
200 * One solution is to spill windows to the parent stack, but that's fairly
201 * involved. Much simpler to just not copy those live frames across.
202 */
203
1/*
2 * arch/xtensa/kernel/process.c
3 *
4 * Xtensa Processor version.
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.

--- 187 unchanged lines hidden (view full) ---

196 * the two threads (parent and child) will overflow the same frames onto the
197 * parent stack at different times, likely corrupting the parent stack (esp.
198 * if the parent returns from functions that called clone() and calls new
199 * ones, before the child overflows its now old copies of its parent windows).
200 * One solution is to spill windows to the parent stack, but that's fairly
201 * involved. Much simpler to just not copy those live frames across.
202 */
203
204int copy_thread_tls(unsigned long clone_flags, unsigned long usp_thread_fn,
204int copy_thread(unsigned long clone_flags, unsigned long usp_thread_fn,
205 unsigned long thread_fn_arg, struct task_struct *p,
206 unsigned long tls)
207{
208 struct pt_regs *childregs = task_pt_regs(p);
209
210#if (XTENSA_HAVE_COPROCESSORS || XTENSA_HAVE_IO_PORTS)
211 struct thread_info *ti;
212#endif

--- 115 unchanged lines hidden ---
205 unsigned long thread_fn_arg, struct task_struct *p,
206 unsigned long tls)
207{
208 struct pt_regs *childregs = task_pt_regs(p);
209
210#if (XTENSA_HAVE_COPROCESSORS || XTENSA_HAVE_IO_PORTS)
211 struct thread_info *ti;
212#endif

--- 115 unchanged lines hidden ---