From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Sasha Levin <sasha.levin@oracle.com>
Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
rostedt@goodmis.org, fweisbec@gmail.com, rusty@rustcorp.com.au,
ananth@in.ibm.com, anil.s.keshavamurthy@intel.com,
jbaron@redhat.com, x86@kernel.org, linux-kernel@vger.kernel.org,
"yrl.pp-manager.tt@hitachi.com" <yrl.pp-manager.tt@hitachi.com>
Subject: Re: [PATCH 3/5] kprobes: constify check_kprobe_address_safe and friends
Date: Mon, 21 Jan 2013 20:49:04 +0900 [thread overview]
Message-ID: <50FD2B30.20100@hitachi.com> (raw)
In-Reply-To: <1357772960-4436-3-git-send-email-sasha.levin@oracle.com>
(2013/01/10 8:09), Sasha Levin wrote:
> Constify the parameters of lookup functions.
>
> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> ---
> arch/x86/kernel/kprobes-opt.c | 8 ++++----
> kernel/kprobes.c | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kernel/kprobes-opt.c b/arch/x86/kernel/kprobes-opt.c
> index c5e410e..5876966 100644
> --- a/arch/x86/kernel/kprobes-opt.c
> +++ b/arch/x86/kernel/kprobes-opt.c
> @@ -192,7 +192,7 @@ static int __kprobes copy_optimized_instructions(u8 *dest, u8 *src)
> }
>
> /* Check whether insn is indirect jump */
> -static int __kprobes insn_is_indirect_jump(struct insn *insn)
> +static int __kprobes insn_is_indirect_jump(const struct insn *insn)
> {
> return ((insn->opcode.bytes[0] == 0xff &&
> (X86_MODRM_REG(insn->modrm.value) & 6) == 4) || /* Jump */
> @@ -200,7 +200,7 @@ static int __kprobes insn_is_indirect_jump(struct insn *insn)
> }
>
> /* Check whether insn jumps into specified address range */
> -static int insn_jump_into_range(struct insn *insn, unsigned long start, int len)
> +static int insn_jump_into_range(const struct insn *insn, unsigned long start, int len)
> {
> unsigned long target = 0;
>
These are OK for me.
> @@ -278,7 +278,7 @@ static int __kprobes can_optimize(unsigned long paddr)
> }
>
> /* Check optimized_kprobe can actually be optimized. */
> -int __kprobes arch_check_optimized_kprobe(struct optimized_kprobe *op)
> +int __kprobes arch_check_optimized_kprobe(const struct optimized_kprobe *op)
> {
> int i;
> struct kprobe *p;
This can be change optimized_kprobe inside, e.g. change flags.
IMHO, I don't like to change this interface.
> @@ -294,7 +294,7 @@ int __kprobes arch_check_optimized_kprobe(struct optimized_kprobe *op)
>
> /* Check the addr is within the optimized instructions. */
> int __kprobes
> -arch_within_optimized_kprobe(struct optimized_kprobe *op, unsigned long addr)
> +arch_within_optimized_kprobe(const struct optimized_kprobe *op, unsigned long addr)
> {
> return ((unsigned long)op->kp.addr <= addr &&
> (unsigned long)op->kp.addr + op->optinsn.size > addr);
This is OK for me. But you need to update the prototype in
include/linux/kprobes.h too.
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index 098f396..7daddb0 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -1402,7 +1402,7 @@ static inline int check_kprobe_rereg(struct kprobe *p)
> return ret;
> }
>
> -static __kprobes int check_kprobe_address_safe(struct kprobe *p,
> +static __kprobes int check_kprobe_address_safe(const struct kprobe *p,
> struct module **probed_mod)
> {
> int ret = 0;
>
No, p is NOT constant in this function. This changes p->flags.
---
#ifdef KPROBES_CAN_USE_FTRACE
/* Given address is not on the instruction boundary */
if ((unsigned long)p->addr != ftrace_addr)
return -EILSEQ;
p->flags |= KPROBE_FLAG_FTRACE;
#else /* !KPROBES_CAN_USE_FTRACE */
---
Thank you,
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next prev parent reply other threads:[~2013-01-21 11:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-09 23:09 [PATCH 1/5] module: constify within_module_* Sasha Levin
2013-01-09 23:09 ` [PATCH 2/5] jump label: constify lookup functions Sasha Levin
2013-01-15 20:46 ` Sasha Levin
2013-01-15 23:19 ` Steven Rostedt
2013-01-18 21:25 ` Steven Rostedt
2013-01-21 6:51 ` Rusty Russell
2013-01-25 4:15 ` Sasha Levin
2013-01-25 10:16 ` Borislav Petkov
2013-01-25 13:03 ` Steven Rostedt
2013-01-18 21:25 ` Steven Rostedt
2013-01-09 23:09 ` [PATCH 3/5] kprobes: constify check_kprobe_address_safe and friends Sasha Levin
2013-01-21 11:49 ` Masami Hiramatsu [this message]
2013-01-25 4:09 ` Sasha Levin
2013-01-29 11:45 ` Masami Hiramatsu
2013-01-09 23:09 ` [PATCH 4/5] alternatives: constify alternatives_text_reserved Sasha Levin
2013-01-21 11:38 ` Masami Hiramatsu
2013-01-09 23:09 ` [PATCH 5/5] ftrace: constify ftrace_text_reserved Sasha Levin
2013-01-10 9:02 ` [PATCH 1/5] module: constify within_module_* Rusty Russell
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=50FD2B30.20100@hitachi.com \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=ananth@in.ibm.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=jbaron@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=sasha.levin@oracle.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yrl.pp-manager.tt@hitachi.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.