aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/kprobes.c
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2017-06-01 13:53:55 -0400
committerBrian Norris <computersforpeace@gmail.com>2017-06-01 13:53:55 -0400
commit05e97a9eda72d58dba293857df6aac62584ef99a (patch)
treee86e692f26d4879ff2210c54722e2b7780210249 /arch/powerpc/kernel/kprobes.c
parent2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff)
parentd4ed3b9015b5eebc90d629579d9e7944607cbae5 (diff)
Merge tag 'nand/fixes-for-4.12-rc3' of git://git.infradead.org/linux-mtd into MTD
From Boris: """ This pull request contains several fixes to the core and the tango driver. tango fixes: * Add missing MODULE_DEVICE_TABLE() in tango_nand.c * Update the number of corrected bitflips core fixes: * Fix a long standing memory leak in nand_scan_tail() * Fix several bugs introduced by the per-vendor init/detection infrastructure (introduced in 4.12) * Add a static specifier to nand_ooblayout_lp_hamming_ops definition """
Diffstat (limited to 'arch/powerpc/kernel/kprobes.c')
-rw-r--r--arch/powerpc/kernel/kprobes.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index 160ae0fa7d0d..fc4343514bed 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -305,16 +305,17 @@ int kprobe_handler(struct pt_regs *regs)
305 save_previous_kprobe(kcb); 305 save_previous_kprobe(kcb);
306 set_current_kprobe(p, regs, kcb); 306 set_current_kprobe(p, regs, kcb);
307 kprobes_inc_nmissed_count(p); 307 kprobes_inc_nmissed_count(p);
308 prepare_singlestep(p, regs);
309 kcb->kprobe_status = KPROBE_REENTER; 308 kcb->kprobe_status = KPROBE_REENTER;
310 if (p->ainsn.boostable >= 0) { 309 if (p->ainsn.boostable >= 0) {
311 ret = try_to_emulate(p, regs); 310 ret = try_to_emulate(p, regs);
312 311
313 if (ret > 0) { 312 if (ret > 0) {
314 restore_previous_kprobe(kcb); 313 restore_previous_kprobe(kcb);
314 preempt_enable_no_resched();
315 return 1; 315 return 1;
316 } 316 }
317 } 317 }
318 prepare_singlestep(p, regs);
318 return 1; 319 return 1;
319 } else { 320 } else {
320 if (*addr != BREAKPOINT_INSTRUCTION) { 321 if (*addr != BREAKPOINT_INSTRUCTION) {