There is an assert in translator_access that I hit while running on a version 
of QEMU integrated into a Virtual Platform.

Since this function can return null anyway I tried the following experiment:

--- a/accel/tcg/translator.c
+++ b/accel/tcg/translator.c
@@ -172,7 +172,9 @@ static void *translator_access(CPUArchState *env, 
DisasContextBase *db,
             tb_page_addr_t phys_page =
                 get_page_addr_code_hostp(env, base, &db->host_addr[1]);
             /* We cannot handle MMIO as second page. */
-            assert(phys_page != -1);
+            if(phys_page == -1) {
+                return NULL;
+            }
             tb_set_page_addr1(tb, phys_page);
#ifdef CONFIG_USER_ONLY
             page_protect(end);

which avoided the issue and the test ran to completion.  What is this assert 
trying to catch?

Reply via email to