mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
[IA64] find thread for user rbs address
I encountered one problem when running ptrace test case the situation is this: traced process's syscall parameter needs to be accessed, but for sys_clone system call with clone_flag (CLONE_VFORK | CLONE_VM | SIGCHLD) parameter. This syscall's parameter accessing result is wrong. The reason is that vforked child process mm point is the same, but tgid is different. Without this patch find_thread_for_addr will return vforked process if vforked process is also stopped, but not the thread which calls vfork syscall. Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
ae0af3e346
commit
87f76d3aaf
@ -607,7 +607,7 @@ find_thread_for_addr (struct task_struct *child, unsigned long addr)
|
||||
*/
|
||||
list_for_each_safe(this, next, ¤t->children) {
|
||||
p = list_entry(this, struct task_struct, sibling);
|
||||
if (p->mm != mm)
|
||||
if (p->tgid != child->tgid)
|
||||
continue;
|
||||
if (thread_matches(p, addr)) {
|
||||
child = p;
|
||||
|
Loading…
x
Reference in New Issue
Block a user