ftrace.c (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) | ftrace.c (1a7d0890dd4a502a202aaec792a6c04e6e049547) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2 3#include <linux/kprobes.h> 4 5/* Ftrace callback handler for kprobes -- called under preepmt disabled */ 6void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip, 7 struct ftrace_ops *ops, struct ftrace_regs *fregs) 8{ 9 int bit; 10 bool lr_saver = false; 11 struct kprobe *p; 12 struct kprobe_ctlblk *kcb; 13 struct pt_regs *regs; 14 | 1// SPDX-License-Identifier: GPL-2.0 2 3#include <linux/kprobes.h> 4 5/* Ftrace callback handler for kprobes -- called under preepmt disabled */ 6void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip, 7 struct ftrace_ops *ops, struct ftrace_regs *fregs) 8{ 9 int bit; 10 bool lr_saver = false; 11 struct kprobe *p; 12 struct kprobe_ctlblk *kcb; 13 struct pt_regs *regs; 14 |
15 if (unlikely(kprobe_ftrace_disabled)) 16 return; 17 |
|
15 bit = ftrace_test_recursion_trylock(ip, parent_ip); 16 if (bit < 0) 17 return; 18 19 regs = ftrace_get_regs(fregs); 20 p = get_kprobe((kprobe_opcode_t *)ip); 21 if (!p) { 22 p = get_kprobe((kprobe_opcode_t *)(ip - MCOUNT_INSN_SIZE)); --- 45 unchanged lines hidden --- | 18 bit = ftrace_test_recursion_trylock(ip, parent_ip); 19 if (bit < 0) 20 return; 21 22 regs = ftrace_get_regs(fregs); 23 p = get_kprobe((kprobe_opcode_t *)ip); 24 if (!p) { 25 p = get_kprobe((kprobe_opcode_t *)(ip - MCOUNT_INSN_SIZE)); --- 45 unchanged lines hidden --- |