|
@@ -157,6 +157,16 @@ struct kretprobe_instance {
|
|
|
struct task_struct *task;
|
|
|
};
|
|
|
|
|
|
+static inline void kretprobe_assert(struct kretprobe_instance *ri,
|
|
|
+ unsigned long orig_ret_address, unsigned long trampoline_address)
|
|
|
+{
|
|
|
+ if (!orig_ret_address || (orig_ret_address == trampoline_address)) {
|
|
|
+ printk("kretprobe BUG!: Processing kretprobe %p @ %p\n",
|
|
|
+ ri->rp, ri->rp->kp.addr);
|
|
|
+ BUG();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
extern spinlock_t kretprobe_lock;
|
|
|
extern struct mutex kprobe_mutex;
|
|
|
extern int arch_prepare_kprobe(struct kprobe *p);
|