From 94df27fd2f008ce9f259b72945e02dcad6e98d82 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Sun, 28 Feb 2010 23:47:45 +0000 Subject: [PATCH] Fix userspace breakpoint invalidation Remove bogus virtual->physical address translation in breakpoint_invalidate for userspace emulation. Signed-off-by: Paul Brook --- exec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/exec.c b/exec.c index 8389c54e7f..52f33f0648 100644 --- a/exec.c +++ b/exec.c @@ -1313,6 +1313,12 @@ static void tb_reset_jump_recursive(TranslationBlock *tb) } #if defined(TARGET_HAS_ICE) +#if defined(CONFIG_USER_ONLY) +static void breakpoint_invalidate(CPUState *env, target_ulong pc) +{ + tb_invalidate_phys_page_range(pc, pc + 1, 0); +} +#else static void breakpoint_invalidate(CPUState *env, target_ulong pc) { target_phys_addr_t addr; @@ -1331,6 +1337,7 @@ static void breakpoint_invalidate(CPUState *env, target_ulong pc) tb_invalidate_phys_page_range(ram_addr, ram_addr + 1, 0); } #endif +#endif /* TARGET_HAS_ICE */ /* Add a watchpoint. */ int cpu_watchpoint_insert(CPUState *env, target_ulong addr, target_ulong len, -- 2.11.4.GIT