summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/hw_breakpoint.c
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-06-29 12:04:17 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-06-29 12:04:17 -0700
commit25c69bf35b1a493ab8c8aca28afd9bb9d0d5d26c (patch)
treeb186b8c104e3e94d06dc31d8305c47d6a8995194 /arch/x86/kernel/hw_breakpoint.c
parentae8a7e6903c2a6201226b3aabb0d7673c6a5f042 (diff)
parent563a330876f64f5289d0886857947c7bd469f907 (diff)
Merge "Merge android-4.4.138 (07c0138) into msm-4.4"
Diffstat (limited to 'arch/x86/kernel/hw_breakpoint.c')
-rw-r--r--arch/x86/kernel/hw_breakpoint.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c
index 50a3fad5b89f..2bcfb5f2bc44 100644
--- a/arch/x86/kernel/hw_breakpoint.c
+++ b/arch/x86/kernel/hw_breakpoint.c
@@ -300,6 +300,10 @@ static int arch_build_bp_info(struct perf_event *bp)
return -EINVAL;
if (bp->attr.bp_addr & (bp->attr.bp_len - 1))
return -EINVAL;
+
+ if (!boot_cpu_has(X86_FEATURE_BPEXT))
+ return -EOPNOTSUPP;
+
/*
* It's impossible to use a range breakpoint to fake out
* user vs kernel detection because bp_len - 1 can't
@@ -307,8 +311,6 @@ static int arch_build_bp_info(struct perf_event *bp)
* breakpoints, then we'll have to check for kprobe-blacklisted
* addresses anywhere in the range.
*/
- if (!cpu_has_bpext)
- return -EOPNOTSUPP;
info->mask = bp->attr.bp_len - 1;
info->len = X86_BREAKPOINT_LEN_1;
}