process.c (98817a84ff1c755c347ac633ff017a623a631fad) | process.c (714acdbd1c94e7e3ab90f6b6938f1ccb27b662f0) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/arch/m68k/kernel/process.c 4 * 5 * Copyright (C) 1995 Hamish Macdonald 6 * 7 * 68060 fixes by Jesper Skov 8 */ --- 111 unchanged lines hidden (view full) --- 120 .pidfd = (int __user *)regs->d3, 121 .child_tid = (int __user *)regs->d4, 122 .parent_tid = (int __user *)regs->d3, 123 .exit_signal = regs->d1 & CSIGNAL, 124 .stack = regs->d2, 125 .tls = regs->d5, 126 }; 127 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/arch/m68k/kernel/process.c 4 * 5 * Copyright (C) 1995 Hamish Macdonald 6 * 7 * 68060 fixes by Jesper Skov 8 */ --- 111 unchanged lines hidden (view full) --- 120 .pidfd = (int __user *)regs->d3, 121 .child_tid = (int __user *)regs->d4, 122 .parent_tid = (int __user *)regs->d3, 123 .exit_signal = regs->d1 & CSIGNAL, 124 .stack = regs->d2, 125 .tls = regs->d5, 126 }; 127 |
128 if (!legacy_clone_args_valid(&args)) 129 return -EINVAL; 130 | |
131 return _do_fork(&args); 132} 133 134/* 135 * Because extra registers are saved on the stack after the sys_clone3() 136 * arguments, this C wrapper extracts them from pt_regs * and then calls the 137 * generic sys_clone3() implementation. 138 */ 139asmlinkage int m68k_clone3(struct pt_regs *regs) 140{ 141 return sys_clone3((struct clone_args __user *)regs->d1, regs->d2); 142} 143 | 128 return _do_fork(&args); 129} 130 131/* 132 * Because extra registers are saved on the stack after the sys_clone3() 133 * arguments, this C wrapper extracts them from pt_regs * and then calls the 134 * generic sys_clone3() implementation. 135 */ 136asmlinkage int m68k_clone3(struct pt_regs *regs) 137{ 138 return sys_clone3((struct clone_args __user *)regs->d1, regs->d2); 139} 140 |
144int copy_thread_tls(unsigned long clone_flags, unsigned long usp, 145 unsigned long arg, struct task_struct *p, 146 unsigned long tls) | 141int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg, 142 struct task_struct *p, unsigned long tls) |
147{ 148 struct fork_frame { 149 struct switch_stack sw; 150 struct pt_regs regs; 151 } *frame; 152 153 frame = (struct fork_frame *) (task_stack_page(p) + THREAD_SIZE) - 1; 154 --- 136 unchanged lines hidden --- | 143{ 144 struct fork_frame { 145 struct switch_stack sw; 146 struct pt_regs regs; 147 } *frame; 148 149 frame = (struct fork_frame *) (task_stack_page(p) + THREAD_SIZE) - 1; 150 --- 136 unchanged lines hidden --- |