[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH stable-1.1 08/26] exec: fix TB invalidation after br
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH stable-1.1 08/26] exec: fix TB invalidation after breakpoint insertion/deletion |
Date: |
Fri, 22 Jun 2012 19:33:12 -0500 |
From: Max Filippov <address@hidden>
tb_invalidate_phys_addr has to be called with the exact physical address of
the breakpoint we add/remove, not just the page's base address.
Otherwise we easily fail to flush the right TB.
This breakage was introduced by the commit f3705d5329 "memory: make
phys_page_find() return an unadjusted".
This appeared to work for some guest architectures because their
cpu_get_phys_page_debug implementation returns full translated physical
address, not just the base of the TARGET_PAGE_SIZE-sized page.
Reported-by: TeLeMan <address@hidden>
Signed-off-by: Jan Kiszka <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Signed-off-by: Blue Swirl <address@hidden>
---
exec.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/exec.c b/exec.c
index a0494c7..0a67f07 100644
--- a/exec.c
+++ b/exec.c
@@ -1492,7 +1492,8 @@ void tb_invalidate_phys_addr(target_phys_addr_t addr)
static void breakpoint_invalidate(CPUArchState *env, target_ulong pc)
{
- tb_invalidate_phys_addr(cpu_get_phys_page_debug(env, pc));
+ tb_invalidate_phys_addr(cpu_get_phys_page_debug(env, pc) |
+ (pc & ~TARGET_PAGE_MASK));
}
#endif
#endif /* TARGET_HAS_ICE */
--
1.7.4.1
- [Qemu-devel] [PATCH stable-1.1 00/26] Initial tree and candidates for stable-1.1, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 01/26] virtio-blk: Fix geometry sector calculation, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 02/26] target-xtensa: flush TLB page for new MMU mapping, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 03/26] target-xtensa: update EXCVADDR in case of page table lookup, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 04/26] target-xtensa: extract TLB entry setting method, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 05/26] target-xtensa: update autorefill TLB entries conditionally, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 06/26] target-xtensa: control page table lookup explicitly, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 07/26] target-xtensa: add MMU pagewalking tests, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 08/26] exec: fix TB invalidation after breakpoint insertion/deletion,
Michael Roth <=
- [Qemu-devel] [PATCH stable-1.1 09/26] target-xtensa: fix CCOUNT for conditional branches, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 10/26] trace/simple.c: fix deprecated glib2 interface, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 11/26] configure: report missing libraries for virtfs, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 12/26] kvm/apic: correct short memset, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 13/26] kvm: i8254: Fix conversion of in-kernel to userspace state, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 14/26] qcow2: Silence false warning, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 15/26] monitor: Fix memory leak with readline completion, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 16/26] configure: Fix build for some versions of glibc (9pfs), Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 17/26] rtl8139: honor RxOverflow flag in can_receive method, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 18/26] ahci: Fix reset of MSI function, Michael Roth, 2012/06/22