- fast_probe.kp.addr =
- (kprobe_opcode_t *) kallsyms_lookup_name("lookup_fast");
- if (!fast_probe.kp.addr) {
- printk("Couldn't find %s to plant kretprobe\n", "lookup_fast");
- return -1;
- }
-
- slow_probe.kp.addr =
- (kprobe_opcode_t *) kallsyms_lookup_name("lookup_slow");
- if (!slow_probe.kp.addr) {
- printk("Couldn't find %s to plant kretprobe\n", "lookup_slow");
- return -1;
- }
-
- dolast_probe.kp.addr =
- (kprobe_opcode_t *) kallsyms_lookup_name("do_last");
-
- if (!dolast_probe.kp.addr) {
- printk("Couldn't find %s to plant kretprobe\n", "do_last");
- return -1;
- }
-
- if ((ret = register_jprobe(&dolast_probe)) <0) {
- printk("register_jprobe failed, returned %u\n", ret);
- return -1;
- }
-
- if ((ret = register_kretprobe(&fast_probe)) <0) {
- printk("register_kretprobe failed, returned %d\n", ret);
- return -1;
- }
-
- printk("Planted kretprobe at %p, handler addr %p\n",
- fast_probe.kp.addr, fast_probe.handler);
-
- if ((ret = register_kretprobe(&slow_probe)) <0) {
- printk("register_kretprobe failed, returned %d\n", ret);
- return -1;
- }
- printk("Planted kretprobe at %p, handler addr %p\n",
- slow_probe.kp.addr, slow_probe.handler);
-
- proc_entry = create_proc_entry("procprotect", 0644, NULL);
- proc_entry->write_proc = procfile_write;