All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Roland McGrath <roland@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	linux-kernel@vger.kernel.org
Subject: [RFC PATCH 11/12 v2] ptrace: mv task_struct->ptrace_message ptrace_ctx->message
Date: Thu, 28 May 2009 13:36:01 +0200	[thread overview]
Message-ID: <20090528113601.GA18725@redhat.com> (raw)

Move task_struct->ptrace_message into ptrace_ctx->message.

ptrace_event() can use current->ptrace_ctx safely. If mask == 0 and we do
not check task_ptrace() we are called from tracehook_report_clone_complete(),
in this case trace == T means current was traced when it called do_fork().

 include/linux/sched.h  |    1 -
 include/linux/ptrace.h |    3 ++-
 kernel/ptrace.c        |    6 ++++--
 3 files changed, 6 insertions(+), 4 deletions(-)

--- PTRACE/include/linux/sched.h~10_MESSAGE	2009-05-28 10:45:59.000000000 +0200
+++ PTRACE/include/linux/sched.h	2009-05-28 12:03:26.000000000 +0200
@@ -1347,7 +1347,6 @@ struct task_struct {
 
 	struct io_context *io_context;
 
-	unsigned long ptrace_message;
 	struct task_io_accounting ioac;
 #if defined(CONFIG_TASK_XACCT)
 	u64 acct_rss_mem1;	/* accumulated rss usage */
--- PTRACE/include/linux/ptrace.h~10_MESSAGE	2009-05-28 11:59:06.000000000 +0200
+++ PTRACE/include/linux/ptrace.h	2009-05-28 12:09:30.000000000 +0200
@@ -79,6 +79,7 @@ struct ptrace_context {
 	unsigned long		flags;
 	struct task_struct	*tracer;
 	struct siginfo		*infop;
+	unsigned long		message;
 };
 
 extern int alloc_ptrace_context(struct task_struct *child);
@@ -159,7 +160,7 @@ static inline int ptrace_event(int mask,
 {
 	if (mask && likely(!(task_ptrace(current) & mask)))
 		return 0;
-	current->ptrace_message = message;
+	current->ptrace_ctx->message = message;
 	ptrace_notify((event << 8) | SIGTRAP);
 	return 1;
 }
--- PTRACE/kernel/ptrace.c~10_MESSAGE	2009-05-28 11:29:45.000000000 +0200
+++ PTRACE/kernel/ptrace.c	2009-05-28 12:11:20.000000000 +0200
@@ -568,7 +568,8 @@ int ptrace_request(struct task_struct *c
 		ret = ptrace_setoptions(child->ptrace_ctx, data);
 		break;
 	case PTRACE_GETEVENTMSG:
-		ret = put_user(child->ptrace_message, (unsigned long __user *) data);
+		ret = put_user(child->ptrace_ctx->message,
+				(unsigned long __user *) data);
 		break;
 
 	case PTRACE_GETSIGINFO:
@@ -728,7 +729,8 @@ int compat_ptrace_request(struct task_st
 		break;
 
 	case PTRACE_GETEVENTMSG:
-		ret = put_user((compat_ulong_t) child->ptrace_message, datap);
+		ret = put_user((compat_ulong_t) child->ptrace_ctx->message,
+				datap);
 		break;
 
 	case PTRACE_GETSIGINFO:


             reply	other threads:[~2009-05-28 11:43 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-28 11:36 Oleg Nesterov [this message]
2009-05-28 11:41 ` [RFC PATCH 11/12 v2] ptrace: mv task_struct->ptrace_message ptrace_ctx->message Oleg Nesterov
2009-05-28 21:24   ` Roland McGrath
2009-05-29 12:24     ` Oleg Nesterov
2009-05-30 18:52       ` PATCH? tracehook_report_clone: fix false positives Oleg Nesterov
2009-06-01  0:22         ` Roland McGrath
2009-06-01 20:07           ` Oleg Nesterov
2009-06-01 20:50             ` Roland McGrath
2009-06-01 21:34               ` Oleg Nesterov
2009-06-01 23:19                 ` Roland McGrath
2009-06-02  0:14                   ` Oleg Nesterov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090528113601.GA18725@redhat.com \
    --to=oleg@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=roland@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.