2010-02-23 18:17:26

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH] ia64: ptrace: kill thread_matches()

Trivial. thread_matches() has no callers since
e868a55c2a8cb72b66d7137fbcc54b82016e98eb, remove it.

Ironically, this helper is the only user of ptrace_check_attach()
outside of kernel/ptrace.c, and it was always wrong because it must
not use "might_sleep" ptrace_check_attach() under tasklist.

Signed-off-by: Oleg Nesterov <[email protected]>

--- a/arch/ia64/kernel/ptrace.c
+++ b/arch/ia64/kernel/ptrace.c
@@ -674,33 +674,6 @@ ptrace_attach_sync_user_rbs (struct task
read_unlock(&tasklist_lock);
}

-static inline int
-thread_matches (struct task_struct *thread, unsigned long addr)
-{
- unsigned long thread_rbs_end;
- struct pt_regs *thread_regs;
-
- if (ptrace_check_attach(thread, 0) < 0)
- /*
- * If the thread is not in an attachable state, we'll
- * ignore it. The net effect is that if ADDR happens
- * to overlap with the portion of the thread's
- * register backing store that is currently residing
- * on the thread's kernel stack, then ptrace() may end
- * up accessing a stale value. But if the thread
- * isn't stopped, that's a problem anyhow, so we're
- * doing as well as we can...
- */
- return 0;
-
- thread_regs = task_pt_regs(thread);
- thread_rbs_end = ia64_get_user_rbs_end(thread, thread_regs, NULL);
- if (!on_kernel_rbs(addr, thread_regs->ar_bspstore, thread_rbs_end))
- return 0;
-
- return 1; /* looks like we've got a winner */
-}
-
/*
* Write f32-f127 back to task->thread.fph if it has been modified.
*/


2010-02-23 20:23:09

by Roland McGrath

[permalink] [raw]
Subject: Re: [PATCH] ia64: ptrace: kill thread_matches()

Acked-by: Roland McGrath <[email protected]>

ia64 folks, please excise the cruft so that it does not hold us back
in making later arch-neutral ptrace changes.


Thanks,
Roland