diff options
Diffstat (limited to 'samples/hw_breakpoint')
-rw-r--r-- | samples/hw_breakpoint/data_breakpoint.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/samples/hw_breakpoint/data_breakpoint.c b/samples/hw_breakpoint/data_breakpoint.c index 29525500df00..c69cbe9b2426 100644 --- a/samples/hw_breakpoint/data_breakpoint.c +++ b/samples/hw_breakpoint/data_breakpoint.c | |||
@@ -41,7 +41,9 @@ module_param_string(ksym, ksym_name, KSYM_NAME_LEN, S_IRUGO); | |||
41 | MODULE_PARM_DESC(ksym, "Kernel symbol to monitor; this module will report any" | 41 | MODULE_PARM_DESC(ksym, "Kernel symbol to monitor; this module will report any" |
42 | " write operations on the kernel symbol"); | 42 | " write operations on the kernel symbol"); |
43 | 43 | ||
44 | static void sample_hbp_handler(struct perf_event *temp, void *data) | 44 | static void sample_hbp_handler(struct perf_event *bp, int nmi, |
45 | struct perf_sample_data *data, | ||
46 | struct pt_regs *regs) | ||
45 | { | 47 | { |
46 | printk(KERN_INFO "%s value is changed\n", ksym_name); | 48 | printk(KERN_INFO "%s value is changed\n", ksym_name); |
47 | dump_stack(); | 49 | dump_stack(); |
@@ -51,8 +53,9 @@ static void sample_hbp_handler(struct perf_event *temp, void *data) | |||
51 | static int __init hw_break_module_init(void) | 53 | static int __init hw_break_module_init(void) |
52 | { | 54 | { |
53 | int ret; | 55 | int ret; |
54 | DEFINE_BREAKPOINT_ATTR(attr); | 56 | struct perf_event_attr attr; |
55 | 57 | ||
58 | hw_breakpoint_init(&attr); | ||
56 | attr.bp_addr = kallsyms_lookup_name(ksym_name); | 59 | attr.bp_addr = kallsyms_lookup_name(ksym_name); |
57 | attr.bp_len = HW_BREAKPOINT_LEN_4; | 60 | attr.bp_len = HW_BREAKPOINT_LEN_4; |
58 | attr.bp_type = HW_BREAKPOINT_W | HW_BREAKPOINT_R; | 61 | attr.bp_type = HW_BREAKPOINT_W | HW_BREAKPOINT_R; |