Commit deb2bd9b authored by Ravi Bangoria's avatar Ravi Bangoria Committed by Michael Ellerman

powerpc/watchpoint: Return available watchpoints dynamically

So far Book3S Powerpc supported only one watchpoint. Power10 is
introducing 2nd DAWR. Enable 2nd DAWR support for Power10.
Availability of 2nd DAWR will depend on CPU_FTR_DAWR1.
Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200723090813.303838-10-ravi.bangoria@linux.ibm.com
parent 03f3e54a
...@@ -629,9 +629,10 @@ enum { ...@@ -629,9 +629,10 @@ enum {
/* /*
* Maximum number of hw breakpoint supported on powerpc. Number of * Maximum number of hw breakpoint supported on powerpc. Number of
* breakpoints supported by actual hw might be less than this. * breakpoints supported by actual hw might be less than this, which
* is decided at run time in nr_wp_slots().
*/ */
#define HBP_NUM_MAX 1 #define HBP_NUM_MAX 2
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#ifndef _PPC_BOOK3S_64_HW_BREAKPOINT_H #ifndef _PPC_BOOK3S_64_HW_BREAKPOINT_H
#define _PPC_BOOK3S_64_HW_BREAKPOINT_H #define _PPC_BOOK3S_64_HW_BREAKPOINT_H
#include <asm/cpu_has_feature.h>
#ifdef __KERNEL__ #ifdef __KERNEL__
struct arch_hw_breakpoint { struct arch_hw_breakpoint {
unsigned long address; unsigned long address;
...@@ -46,7 +48,7 @@ struct arch_hw_breakpoint { ...@@ -46,7 +48,7 @@ struct arch_hw_breakpoint {
static inline int nr_wp_slots(void) static inline int nr_wp_slots(void)
{ {
return HBP_NUM_MAX; return cpu_has_feature(CPU_FTR_DAWR1) ? 2 : 1;
} }
#ifdef CONFIG_HAVE_HW_BREAKPOINT #ifdef CONFIG_HAVE_HW_BREAKPOINT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment