summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@xilinx.com>2013-11-21 19:06:30 +0100
committerEdgar E. Iglesias <edgar.iglesias@xilinx.com>2014-02-11 22:56:43 +1000
commit33bde2e13f36b9331e35b6e531bc06e8567b4f64 (patch)
treeadd1e96c9534d347e3fd606c59efd13fe5d0e505
parent09daed848c3de60b7979eda709dc4bae5195273d (diff)
downloadhqemu-33bde2e13f36b9331e35b6e531bc06e8567b4f64.zip
hqemu-33bde2e13f36b9331e35b6e531bc06e8567b4f64.tar.gz
exec: On AS changes, only flush affected CPU TLBs
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
-rw-r--r--exec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/exec.c b/exec.c
index cd931c1..5e2d121 100644
--- a/exec.c
+++ b/exec.c
@@ -1828,6 +1828,11 @@ static void tcg_commit(MemoryListener *listener)
CPU_FOREACH(cpu) {
CPUArchState *env = cpu->env_ptr;
+ /* FIXME: Disentangle the cpu.h circular files deps so we can
+ directly get the right CPU from listener. */
+ if (cpu->tcg_as_listener != listener) {
+ continue;
+ }
tlb_flush(env, 1);
}
}
OpenPOWER on IntegriCloud