Index: kernel/arch/mips32/src/mm/tlb.c
===================================================================
--- kernel/arch/mips32/src/mm/tlb.c	(revision b696cbff4a24376d6e6be1b86817a2cf94bab1e3)
+++ kernel/arch/mips32/src/mm/tlb.c	(revision ddfd158d3d5567c186f2c743e55f2f9770d18ed5)
@@ -197,4 +197,6 @@
 	pte_t *pte;
 
+	badvaddr = cp0_badvaddr_read();
+
 	/*
 	 * Locate the faulting entry in TLB.
@@ -204,9 +206,16 @@
 
 	/*
-	 * Fail if the entry is not in TLB.
+	 * Emit warning if the entry is not in TLB.
+	 *
+	 * We do not assert on this because this could be a manifestation of
+	 * an emulator bug, such as QEMU Bug #1128935:
+	 * https://bugs.launchpad.net/qemu/+bug/1128935  
 	 */
-	ASSERT(!index.p);
-
-	badvaddr = cp0_badvaddr_read();
+	if (index.p) {
+		printf("%s: TLBP failed in exception handler (badvaddr=%#"
+		    PRIxn ", ASID=%d).\n", __func__, badvaddr,
+		    AS ? AS->asid : -1);
+		return;
+	}
 
 	pte = page_mapping_find(AS, badvaddr, true);
