Fix userspace breakpoint invalidation

Remove bogus virtual->physical address translation in
breakpoint_invalidate for userspace emulation.

Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
Paul Brook 2010-02-28 23:47:45 +00:00
parent 30d11a2a01
commit 94df27fd2f
1 changed files with 7 additions and 0 deletions

7
exec.c
View File

@ -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,