[RFC] MIPS: Enable ARCH_HAS_DEBUG_VIRTUAL for 64-bit

From: Florian Fainelli
Date: Thu Jul 07 2022 - 18:04:56 EST


Update __debug_virt_addr_valid() to check for a virtual address'
validity below CKSSEG and remove the !64BIT dependency on
ARCH_HAS_DEBUG_VIRTUAL to make DEBUG_VIRTUAL selectable.

Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
---
This requires the previous patch to be applied for this to work cleanly.

arch/mips/Kconfig | 2 +-
arch/mips/mm/physaddr.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index db09d45d59ec..ddb6bde8fa1f 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -5,7 +5,7 @@ config MIPS
select ARCH_32BIT_OFF_T if !64BIT
select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
- select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
+ select ARCH_HAS_DEBUG_VIRTUAL
select ARCH_HAS_FORTIFY_SOURCE
select ARCH_HAS_KCOV
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
diff --git a/arch/mips/mm/physaddr.c b/arch/mips/mm/physaddr.c
index a82f8f57a652..3076238943d3 100644
--- a/arch/mips/mm/physaddr.c
+++ b/arch/mips/mm/physaddr.c
@@ -31,7 +31,11 @@ static inline bool __debug_virt_addr_valid(unsigned long x)
if (x == MAX_DMA_ADDRESS)
return true;

+#ifdef CONFIG_64BIT
+ return KSEGX(x) < CKSSEG;
+#else
return KSEGX(x) < KSEG2;
+#endif
}

phys_addr_t __virt_to_phys(volatile const void *x)
--
2.25.1