From: "S. P. Prasanna" <prasanna@in.ibm.com>
To: Chuck Ebbert <76306.1226@compuserve.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Andi Kleen <ak@suse.de>, Andrew Morton <akpm@osdl.org>,
Linus Torvalds <torvalds@osdl.org>
Subject: Re: [patch] i386: entry.s::error_code is not safe for kprobes
Date: Fri, 4 Aug 2006 16:35:43 +0530 [thread overview]
Message-ID: <20060804110543.GA10085@in.ibm.com> (raw)
In-Reply-To: <200608030623_MC3-1-C6F0-24AD@compuserve.com>
Hi Chuck,
Thanks for fixing the problem. Patch looks good to me.
I will make those changes for x86_64.
Thanks
Prasanna
On Thu, Aug 03, 2006 at 06:20:19AM -0400, Chuck Ebbert wrote:
> Because code marked unsafe for kprobes jumps directly to
> entry.S::error_code, that must be marked unsafe as well.
> The easiest way to do that is to move the page fault entry
> point to just before error_code and let it inherit the same
> section.
>
> Also moved all the ".previous" asm directives for kprobes
> sections to column 1 and removed ".text" from them.
>
> Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
>
> ---
>
> x86_64 also has this problem but I wasn't sure whether to move
> error_entry into .kprobes.text or convert offendors to the
> "paranoid" infrastructure.
>
> arch/i386/kernel/entry.S | 25 +++++++++++++------------
> 1 files changed, 13 insertions(+), 12 deletions(-)
>
> --- 2.6.18-rc3-nb.orig/arch/i386/kernel/entry.S
> +++ 2.6.18-rc3-nb/arch/i386/kernel/entry.S
> @@ -587,11 +587,9 @@ ENTRY(name) \
> /* The include is where all of the SMP etc. interrupts come from */
> #include "entry_arch.h"
>
> -ENTRY(divide_error)
> - RING0_INT_FRAME
> - pushl $0 # no error code
> - CFI_ADJUST_CFA_OFFSET 4
> - pushl $do_divide_error
> +KPROBE_ENTRY(page_fault)
> + RING0_EC_FRAME
> + pushl $do_page_fault
> CFI_ADJUST_CFA_OFFSET 4
> ALIGN
> error_code:
> @@ -641,6 +639,7 @@ error_code:
> call *%edi
> jmp ret_from_exception
> CFI_ENDPROC
> +.previous
>
> ENTRY(coprocessor_error)
> RING0_INT_FRAME
> @@ -716,7 +715,8 @@ debug_stack_correct:
> call do_debug
> jmp ret_from_exception
> CFI_ENDPROC
> - .previous .text
> +.previous
> +
> /*
> * NMI is doubly nasty. It can happen _while_ we're handling
> * a debug fault, and the debug fault hasn't yet been able to
> @@ -812,7 +812,7 @@ KPROBE_ENTRY(int3)
> call do_int3
> jmp ret_from_exception
> CFI_ENDPROC
> - .previous .text
> +.previous
>
> ENTRY(overflow)
> RING0_INT_FRAME
> @@ -877,7 +877,7 @@ KPROBE_ENTRY(general_protection)
> CFI_ADJUST_CFA_OFFSET 4
> jmp error_code
> CFI_ENDPROC
> - .previous .text
> +.previous
>
> ENTRY(alignment_check)
> RING0_EC_FRAME
> @@ -886,13 +886,14 @@ ENTRY(alignment_check)
> jmp error_code
> CFI_ENDPROC
>
> -KPROBE_ENTRY(page_fault)
> - RING0_EC_FRAME
> - pushl $do_page_fault
> +ENTRY(divide_error)
> + RING0_INT_FRAME
> + pushl $0 # no error code
> + CFI_ADJUST_CFA_OFFSET 4
> + pushl $do_divide_error
> CFI_ADJUST_CFA_OFFSET 4
> jmp error_code
> CFI_ENDPROC
> - .previous .text
>
> #ifdef CONFIG_X86_MCE
> ENTRY(machine_check)
> --
> Chuck
--
S.P. Prasanna
Linux Technology Center
India Software Labs, IBM Bangalore
Email: prasanna@in.ibm.com
Ph: 91-80-41776329
prev parent reply other threads:[~2006-08-04 5:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-03 10:20 [patch] i386: entry.s::error_code is not safe for kprobes Chuck Ebbert
2006-08-04 6:08 ` Andi Kleen
2006-08-04 11:05 ` S. P. Prasanna [this message]
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=20060804110543.GA10085@in.ibm.com \
--to=prasanna@in.ibm.com \
--cc=76306.1226@compuserve.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/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.