]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
accel/tcg: Assert one page in tb_invalidate_phys_page_range__locked
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Thu, 29 Jun 2023 08:25:22 +0000 (09:25 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Sun, 2 Jul 2023 19:10:28 +0000 (22:10 +0300)
Ensure that that both the start and last addresses are within
the same guest page.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230629082522.606219-3-mark.cave-ayland@ilande.co.uk>
[rth: Use tcg_debug_assert, simplify the expression]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit e665cf72fe6357945fdbecf747dac58c0c7c7c66)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
accel/tcg/tb-maint.c

index 2f15a31b3e7b62b3a04528943945f19753a5e90d..cca42f88c94fedb75c9020d5096c173ddd990dc6 100644 (file)
@@ -1093,6 +1093,9 @@ tb_invalidate_phys_page_range__locked(struct page_collection *pages,
     TranslationBlock *current_tb = retaddr ? tcg_tb_lookup(retaddr) : NULL;
 #endif /* TARGET_HAS_PRECISE_SMC */
 
+    /* Range may not cross a page. */
+    tcg_debug_assert(((start ^ last) & TARGET_PAGE_MASK) == 0);
+
     /*
      * We remove all the TBs in the range [start, last].
      * XXX: see if in some cases it could be faster to invalidate all the code