Message ID | 20170606042945.24997-3-bsingharora@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Hi Balbir, On 2017/06/06 02:29PM, Balbir Singh wrote: > arch_arm/disarm_probe use direct assignment for copying > instructions, replace them with patch_instruction > > Signed-off-by: Balbir Singh <bsingharora@gmail.com> > --- > arch/powerpc/kernel/kprobes.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c > index fc43435..b49f8f0 100644 > --- a/arch/powerpc/kernel/kprobes.c > +++ b/arch/powerpc/kernel/kprobes.c > @@ -158,7 +158,7 @@ NOKPROBE_SYMBOL(arch_prepare_kprobe); > > void arch_arm_kprobe(struct kprobe *p) > { > - *p->addr = BREAKPOINT_INSTRUCTION; > + patch_instruction(p->addr, BREAKPOINT_INSTRUCTION); > flush_icache_range((unsigned long) p->addr, > (unsigned long) p->addr + sizeof(kprobe_opcode_t)); Do we still need flush_icache_range() after patch_instruction()? - Naveen > } > @@ -166,7 +166,7 @@ NOKPROBE_SYMBOL(arch_arm_kprobe); > > void arch_disarm_kprobe(struct kprobe *p) > { > - *p->addr = p->opcode; > + patch_instruction(p->addr, p->opcode); > flush_icache_range((unsigned long) p->addr, > (unsigned long) p->addr + sizeof(kprobe_opcode_t)); > } > -- > 2.9.4 >
On Wed, 2017-06-07 at 00:35 +0530, Naveen N. Rao wrote: > Hi Balbir, > > On 2017/06/06 02:29PM, Balbir Singh wrote: > > arch_arm/disarm_probe use direct assignment for copying > > instructions, replace them with patch_instruction > > > > Signed-off-by: Balbir Singh <bsingharora@gmail.com> > > --- > > arch/powerpc/kernel/kprobes.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c > > index fc43435..b49f8f0 100644 > > --- a/arch/powerpc/kernel/kprobes.c > > +++ b/arch/powerpc/kernel/kprobes.c > > @@ -158,7 +158,7 @@ NOKPROBE_SYMBOL(arch_prepare_kprobe); > > > > void arch_arm_kprobe(struct kprobe *p) > > { > > - *p->addr = BREAKPOINT_INSTRUCTION; > > + patch_instruction(p->addr, BREAKPOINT_INSTRUCTION); > > flush_icache_range((unsigned long) p->addr, > > (unsigned long) p->addr + sizeof(kprobe_opcode_t)); > > Do we still need flush_icache_range() after patch_instruction()? > Good catch! No, we don't Balbir Singh.
Balbir Singh <bsingharora@gmail.com> writes: > On Wed, 2017-06-07 at 00:35 +0530, Naveen N. Rao wrote: >> Hi Balbir, >> >> On 2017/06/06 02:29PM, Balbir Singh wrote: >> > arch_arm/disarm_probe use direct assignment for copying >> > instructions, replace them with patch_instruction >> > >> > Signed-off-by: Balbir Singh <bsingharora@gmail.com> >> > --- >> > arch/powerpc/kernel/kprobes.c | 4 ++-- >> > 1 file changed, 2 insertions(+), 2 deletions(-) >> > >> > diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c >> > index fc43435..b49f8f0 100644 >> > --- a/arch/powerpc/kernel/kprobes.c >> > +++ b/arch/powerpc/kernel/kprobes.c >> > @@ -158,7 +158,7 @@ NOKPROBE_SYMBOL(arch_prepare_kprobe); >> > >> > void arch_arm_kprobe(struct kprobe *p) >> > { >> > - *p->addr = BREAKPOINT_INSTRUCTION; >> > + patch_instruction(p->addr, BREAKPOINT_INSTRUCTION); >> > flush_icache_range((unsigned long) p->addr, >> > (unsigned long) p->addr + sizeof(kprobe_opcode_t)); >> >> Do we still need flush_icache_range() after patch_instruction()? > > Good catch! No, we don't I picked this up independently. cheers
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index fc43435..b49f8f0 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c @@ -158,7 +158,7 @@ NOKPROBE_SYMBOL(arch_prepare_kprobe); void arch_arm_kprobe(struct kprobe *p) { - *p->addr = BREAKPOINT_INSTRUCTION; + patch_instruction(p->addr, BREAKPOINT_INSTRUCTION); flush_icache_range((unsigned long) p->addr, (unsigned long) p->addr + sizeof(kprobe_opcode_t)); } @@ -166,7 +166,7 @@ NOKPROBE_SYMBOL(arch_arm_kprobe); void arch_disarm_kprobe(struct kprobe *p) { - *p->addr = p->opcode; + patch_instruction(p->addr, p->opcode); flush_icache_range((unsigned long) p->addr, (unsigned long) p->addr + sizeof(kprobe_opcode_t)); }
arch_arm/disarm_probe use direct assignment for copying instructions, replace them with patch_instruction Signed-off-by: Balbir Singh <bsingharora@gmail.com> --- arch/powerpc/kernel/kprobes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)