| From 849adec41203ac5837c40c2d7e08490ffdef3c2c Mon Sep 17 00:00:00 2001 |
| From: Will Deacon <will@kernel.org> |
| Date: Mon, 29 Jul 2019 11:06:17 +0100 |
| Subject: arm64: compat: Allow single-byte watchpoints on all addresses |
| |
| From: Will Deacon <will@kernel.org> |
| |
| commit 849adec41203ac5837c40c2d7e08490ffdef3c2c upstream. |
| |
| Commit d968d2b801d8 ("ARM: 7497/1: hw_breakpoint: allow single-byte |
| watchpoints on all addresses") changed the validation requirements for |
| hardware watchpoints on arch/arm/. Update our compat layer to implement |
| the same relaxation. |
| |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Will Deacon <will@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm64/kernel/hw_breakpoint.c | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/arch/arm64/kernel/hw_breakpoint.c |
| +++ b/arch/arm64/kernel/hw_breakpoint.c |
| @@ -536,13 +536,14 @@ int hw_breakpoint_arch_parse(struct perf |
| /* Aligned */ |
| break; |
| case 1: |
| - /* Allow single byte watchpoint. */ |
| - if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1) |
| - break; |
| case 2: |
| /* Allow halfword watchpoints and breakpoints. */ |
| if (hw->ctrl.len == ARM_BREAKPOINT_LEN_2) |
| break; |
| + case 3: |
| + /* Allow single byte watchpoint. */ |
| + if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1) |
| + break; |
| default: |
| return -EINVAL; |
| } |