|
@@ -167,29 +167,6 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp)
|
|
|
set_dr_addr_mask(0, i);
|
|
|
}
|
|
|
|
|
|
-static int get_hbp_len(u8 hbp_len)
|
|
|
-{
|
|
|
- unsigned int len_in_bytes = 0;
|
|
|
-
|
|
|
- switch (hbp_len) {
|
|
|
- case X86_BREAKPOINT_LEN_1:
|
|
|
- len_in_bytes = 1;
|
|
|
- break;
|
|
|
- case X86_BREAKPOINT_LEN_2:
|
|
|
- len_in_bytes = 2;
|
|
|
- break;
|
|
|
- case X86_BREAKPOINT_LEN_4:
|
|
|
- len_in_bytes = 4;
|
|
|
- break;
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
- case X86_BREAKPOINT_LEN_8:
|
|
|
- len_in_bytes = 8;
|
|
|
- break;
|
|
|
-#endif
|
|
|
- }
|
|
|
- return len_in_bytes;
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* Check for virtual address in kernel space.
|
|
|
*/
|
|
@@ -200,7 +177,7 @@ int arch_check_bp_in_kernelspace(struct perf_event *bp)
|
|
|
struct arch_hw_breakpoint *info = counter_arch_bp(bp);
|
|
|
|
|
|
va = info->address;
|
|
|
- len = get_hbp_len(info->len);
|
|
|
+ len = bp->attr.bp_len;
|
|
|
|
|
|
return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
|
|
|
}
|