]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: x86: Cater for new instruction size limit in instruction decoder
authorNick Alcock <nick.alcock@oracle.com>
Mon, 23 Feb 2015 14:03:14 +0000 (14:03 +0000)
committerNick Alcock <nick.alcock@oracle.com>
Tue, 21 Jul 2015 14:30:06 +0000 (15:30 +0100)
This adjusts to the API change in commit 6ba48ff upstream.  (We use the same
technique as kprobes, allowing instructions of any size, since this PF will
always come from kernelspace and never contain a malicious instruction stream.)

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Acked-by: Kris Van Hees <kris.van.hees@oracle.com>
arch/x86/kernel/dtrace_util.c

index 926b59e31c5cc908689de8308669ba47ba49d300..6b7e514c7721fe7beb899abc0126aa4c3aa9a9ad 100644 (file)
@@ -20,7 +20,7 @@
 void dtrace_skip_instruction(struct pt_regs *regs) {
        struct insn             insn;
 
-       kernel_insn_init(&insn, (void *)regs->ip);
+       kernel_insn_init(&insn, (void *)regs->ip, MAX_INSN_SIZE);
        insn_get_length(&insn);
 
        regs->ip += insn.length;
@@ -60,7 +60,7 @@ int dtrace_die_notifier(struct notifier_block *nb, unsigned long val,
        case DIE_GPF: {
                struct insn     insn;
 
-               kernel_insn_init(&insn, (void *)dargs->regs->ip);
+               kernel_insn_init(&insn, (void *)dargs->regs->ip, MAX_INSN_SIZE);
                insn_get_length(&insn);
 
                /*