Power10 has removed 512 bytes boundary from match criteria. i.e. The watch
range can cross 512 bytes boundary.

Signed-off-by: Ravi Bangoria <ravi.bango...@linux.ibm.com>
---
 arch/powerpc/kernel/hw_breakpoint.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/hw_breakpoint.c 
b/arch/powerpc/kernel/hw_breakpoint.c
index c55e67bab271..1f4a1efa0074 100644
--- a/arch/powerpc/kernel/hw_breakpoint.c
+++ b/arch/powerpc/kernel/hw_breakpoint.c
@@ -418,8 +418,9 @@ static int hw_breakpoint_validate_len(struct 
arch_hw_breakpoint *hw)
 
        if (dawr_enabled()) {
                max_len = DAWR_MAX_LEN;
-               /* DAWR region can't cross 512 bytes boundary */
-               if (ALIGN_DOWN(start_addr, SZ_512) != ALIGN_DOWN(end_addr - 1, 
SZ_512))
+               /* DAWR region can't cross 512 bytes boundary on p10 
predecessors */
+               if (!cpu_has_feature(CPU_FTR_ARCH_31) &&
+                   (ALIGN_DOWN(start_addr, SZ_512) != ALIGN_DOWN(end_addr - 1, 
SZ_512)))
                        return -EINVAL;
        } else if (IS_ENABLED(CONFIG_PPC_8xx)) {
                /* 8xx can setup a range without limitation */
-- 
2.26.2

Reply via email to