From: Ravi Bangoria <ravi.bangoria@linux.ibm.com> To: mpe@ellerman.id.au, mikey@neuling.org Cc: ravi.bangoria@linux.ibm.com, paulus@samba.org, npiggin@gmail.com, christophe.leroy@c-s.fr, naveen.n.rao@linux.vnet.ibm.com, peterz@infradead.org, jolsa@kernel.org, oleg@redhat.com, fweisbec@gmail.com, mingo@kernel.org, pedromfc@br.ibm.com, miltonm@us.ibm.com, jniethe5@gmail.com, rogealve@br.ibm.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 01/10] powerpc/watchpoint: Fix 512 byte boundary limit Date: Thu, 23 Jul 2020 14:38:04 +0530 [thread overview] Message-ID: <20200723090813.303838-2-ravi.bangoria@linux.ibm.com> (raw) In-Reply-To: <20200723090813.303838-1-ravi.bangoria@linux.ibm.com> Milton Miller reported that we are aligning start and end address to wrong size SZ_512M. It should be SZ_512. Fix that. While doing this change I also found a case where ALIGN() comparison fails. Within a given aligned range, ALIGN() of two addresses does not match when start address is pointing to the first byte and end address is pointing to any other byte except the first one. But that's not true for ALIGN_DOWN(). ALIGN_DOWN() of any two addresses within that range will always point to the first byte. So use ALIGN_DOWN() instead of ALIGN(). Fixes: e68ef121c1f4 ("powerpc/watchpoint: Use builtin ALIGN*() macros") Reported-by: Milton Miller <miltonm@us.ibm.com> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com> Tested-by: Jordan Niethe <jniethe5@gmail.com> --- arch/powerpc/kernel/hw_breakpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c index 0000daf0e1da..031e6defc08e 100644 --- a/arch/powerpc/kernel/hw_breakpoint.c +++ b/arch/powerpc/kernel/hw_breakpoint.c @@ -419,7 +419,7 @@ 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(start_addr, SZ_512M) != ALIGN(end_addr - 1, SZ_512M)) + if (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
WARNING: multiple messages have this Message-ID (diff)
From: Ravi Bangoria <ravi.bangoria@linux.ibm.com> To: mpe@ellerman.id.au, mikey@neuling.org Cc: christophe.leroy@c-s.fr, ravi.bangoria@linux.ibm.com, rogealve@br.ibm.com, miltonm@us.ibm.com, peterz@infradead.org, fweisbec@gmail.com, oleg@redhat.com, npiggin@gmail.com, linux-kernel@vger.kernel.org, paulus@samba.org, jolsa@kernel.org, jniethe5@gmail.com, pedromfc@br.ibm.com, naveen.n.rao@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org, mingo@kernel.org Subject: [PATCH v5 01/10] powerpc/watchpoint: Fix 512 byte boundary limit Date: Thu, 23 Jul 2020 14:38:04 +0530 [thread overview] Message-ID: <20200723090813.303838-2-ravi.bangoria@linux.ibm.com> (raw) In-Reply-To: <20200723090813.303838-1-ravi.bangoria@linux.ibm.com> Milton Miller reported that we are aligning start and end address to wrong size SZ_512M. It should be SZ_512. Fix that. While doing this change I also found a case where ALIGN() comparison fails. Within a given aligned range, ALIGN() of two addresses does not match when start address is pointing to the first byte and end address is pointing to any other byte except the first one. But that's not true for ALIGN_DOWN(). ALIGN_DOWN() of any two addresses within that range will always point to the first byte. So use ALIGN_DOWN() instead of ALIGN(). Fixes: e68ef121c1f4 ("powerpc/watchpoint: Use builtin ALIGN*() macros") Reported-by: Milton Miller <miltonm@us.ibm.com> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com> Tested-by: Jordan Niethe <jniethe5@gmail.com> --- arch/powerpc/kernel/hw_breakpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c index 0000daf0e1da..031e6defc08e 100644 --- a/arch/powerpc/kernel/hw_breakpoint.c +++ b/arch/powerpc/kernel/hw_breakpoint.c @@ -419,7 +419,7 @@ 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(start_addr, SZ_512M) != ALIGN(end_addr - 1, SZ_512M)) + if (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
next prev parent reply other threads:[~2020-07-23 9:09 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-23 9:08 [PATCH v5 00/10] powerpc/watchpoint: Enable 2nd DAWR on baremetal and powervm Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria [this message] 2020-07-23 9:08 ` [PATCH v5 01/10] powerpc/watchpoint: Fix 512 byte boundary limit Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 02/10] powerpc/watchpoint: Fix DAWR exception constraint Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 03/10] powerpc/watchpoint: Fix DAWR exception for CACHEOP Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 04/10] powerpc/watchpoint: Enable watchpoint functionality on power10 guest Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 05/10] powerpc/dt_cpu_ftrs: Add feature for 2nd DAWR Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 06/10] powerpc/watchpoint: Set CPU_FTR_DAWR1 based on pa-features bit Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 07/10] powerpc/watchpoint: Rename current H_SET_MODE DAWR macro Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 08/10] powerpc/watchpoint: Guest support for 2nd DAWR hcall Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 09/10] powerpc/watchpoint: Return available watchpoints dynamically Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-23 9:08 ` [PATCH v5 10/10] powerpc/watchpoint: Remove 512 byte boundary Ravi Bangoria 2020-07-23 9:08 ` Ravi Bangoria 2020-07-27 7:26 ` [PATCH v5 00/10] powerpc/watchpoint: Enable 2nd DAWR on baremetal and powervm Michael Ellerman 2020-07-27 7:26 ` Michael Ellerman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200723090813.303838-2-ravi.bangoria@linux.ibm.com \ --to=ravi.bangoria@linux.ibm.com \ --cc=christophe.leroy@c-s.fr \ --cc=fweisbec@gmail.com \ --cc=jniethe5@gmail.com \ --cc=jolsa@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mikey@neuling.org \ --cc=miltonm@us.ibm.com \ --cc=mingo@kernel.org \ --cc=mpe@ellerman.id.au \ --cc=naveen.n.rao@linux.vnet.ibm.com \ --cc=npiggin@gmail.com \ --cc=oleg@redhat.com \ --cc=paulus@samba.org \ --cc=pedromfc@br.ibm.com \ --cc=peterz@infradead.org \ --cc=rogealve@br.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.