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 --- |