From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
systemtap-ml <systemtap@sources.redhat.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Subject: Re: [BUGFIX][PATCH -tip] x86: kretprobe-booster interrupt emulation code fix
Date: Mon, 23 Mar 2009 22:09:10 +0530 [thread overview]
Message-ID: <20090323163910.GB3858@in.ibm.com> (raw)
In-Reply-To: <49C7995C.2010601@redhat.com>
On Mon, Mar 23, 2009 at 10:14:52AM -0400, Masami Hiramatsu wrote:
> Fix interrupt emulation code in kretprobe-booster according to
> pt_regs update (es/ds change and gs adding).
>
> This issue has been reported on systemtap-bugzilla:
> http://sources.redhat.com/bugzilla/show_bug.cgi?id=9965
Do you want to put some of the details from the bugzilla entry
to this patch description so that one is not forced to look
at the bugzilla in future when git log is done ?
>
> Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
> Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
> ---
> arch/x86/kernel/kprobes.c | 17 +++++++++--------
> 1 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
> index 55b9461..64dba72 100644
> --- a/arch/x86/kernel/kprobes.c
> +++ b/arch/x86/kernel/kprobes.c
> @@ -638,13 +638,13 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
> #else
> " pushf\n"
> /*
> - * Skip cs, ip, orig_ax.
> + * Skip cs, ip, orig_ax and gs.
> * trampoline_handler() will plug in these values
> */
> - " subl $12, %esp\n"
> + " subl $16, %esp\n"
> " pushl %fs\n"
> - " pushl %ds\n"
> " pushl %es\n"
> + " pushl %ds\n"
> " pushl %eax\n"
> " pushl %ebp\n"
> " pushl %edi\n"
> @@ -655,10 +655,10 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
> " movl %esp, %eax\n"
> " call trampoline_handler\n"
> /* Move flags to cs */
> - " movl 52(%esp), %edx\n"
> - " movl %edx, 48(%esp)\n"
> + " movl 56(%esp), %edx\n"
> + " movl %edx, 52(%esp)\n"
> /* Replace saved flags with true return address. */
> - " movl %eax, 52(%esp)\n"
> + " movl %eax, 56(%esp)\n"
> " popl %ebx\n"
> " popl %ecx\n"
> " popl %edx\n"
> @@ -666,8 +666,8 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
> " popl %edi\n"
> " popl %ebp\n"
> " popl %eax\n"
> - /* Skip ip, orig_ax, es, ds, fs */
> - " addl $20, %esp\n"
> + /* Skip ds, es, fs, gs, orig_ax and ip */
> + " addl $24, %esp\n"
> " popf\n"
> #endif
> " ret\n");
> @@ -694,6 +694,7 @@ static __used __kprobes void *trampoline_handler(struct pt_regs *regs)
> #endif
> regs->ip = trampoline_address;
> regs->orig_ax = ~0UL;
> + regs->gs = 0;
>
> /*
> * It is possible to have multiple instances associated with a given
>
This change works for me. I no longer see "BUG: sleeping from invalid context"
messages with kretprobe after this change.
Regards,
Bharata.
next prev parent reply other threads:[~2009-03-23 16:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-23 14:14 Masami Hiramatsu
2009-03-23 16:39 ` Bharata B Rao [this message]
2009-03-23 20:47 ` Masami Hiramatsu
2009-03-24 6:39 ` Ananth N Mavinakayanahalli
2009-03-24 12:21 ` [tip:tracing/kprobes] " Masami Hiramatsu
2009-03-24 13:13 ` Ingo Molnar
2009-03-24 14:46 ` Bharata B Rao
2009-03-24 23:25 ` Masami Hiramatsu
2009-03-25 17:57 ` Masami Hiramatsu
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=20090323163910.GB3858@in.ibm.com \
--to=bharata@linux.vnet.ibm.com \
--cc=ananth@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=systemtap@sources.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®