[PATCH v2 02/11] target/openrisc: Fix memory reading in debugger

Stafford Horne posted 11 patches 3 years, 7 months ago
Maintainers: Stafford Horne <shorne@gmail.com>, Jia Liu <proljc@gmail.com>, Anup Patel <anup.patel@wdc.com>, Alistair Francis <Alistair.Francis@wdc.com>
There is a newer version of this series
[PATCH v2 02/11] target/openrisc: Fix memory reading in debugger
Posted by Stafford Horne 3 years, 7 months ago
In commit f0655423ca ("target/openrisc: Reorg tlb lookup") data and
instruction TLB reads were combined.  This, broke debugger reads where
we first tried to map using the data tlb then fall back to the
instruction tlb.

This patch replicates this logic by first requesting a PAGE_READ
protection mapping then falling back to PAGE_EXEC.

Signed-off-by: Stafford Horne <shorne@gmail.com>
---
 target/openrisc/mmu.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/target/openrisc/mmu.c b/target/openrisc/mmu.c
index d7e1320998..0b8afdbacf 100644
--- a/target/openrisc/mmu.c
+++ b/target/openrisc/mmu.c
@@ -148,7 +148,13 @@ hwaddr openrisc_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
     case SR_DME | SR_IME:
         /* The mmu is definitely enabled.  */
         excp = get_phys_mmu(cpu, &phys_addr, &prot, addr,
-                            PAGE_EXEC | PAGE_READ | PAGE_WRITE,
+                            PAGE_READ,
+                            (sr & SR_SM) != 0);
+        if (!excp) {
+            return phys_addr;
+        }
+        excp = get_phys_mmu(cpu, &phys_addr, &prot, addr,
+                            PAGE_EXEC,
                             (sr & SR_SM) != 0);
         return excp ? -1 : phys_addr;
 
-- 
2.36.1
Re: [PATCH v2 02/11] target/openrisc: Fix memory reading in debugger
Posted by Richard Henderson 3 years, 7 months ago
On 7/4/22 02:58, Stafford Horne wrote:
> In commit f0655423ca ("target/openrisc: Reorg tlb lookup") data and
> instruction TLB reads were combined.  This, broke debugger reads where
> we first tried to map using the data tlb then fall back to the
> instruction tlb.
> 
> This patch replicates this logic by first requesting a PAGE_READ
> protection mapping then falling back to PAGE_EXEC.
> 
> Signed-off-by: Stafford Horne <shorne@gmail.com>

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~