qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] [MIPS] Fix infinite loop when invalidating TLB


From: Hervé Poussineau
Subject: [Qemu-devel] [PATCH] [MIPS] Fix infinite loop when invalidating TLB
Date: Sat, 29 Mar 2008 19:24:47 +0100
User-agent: Thunderbird 2.0.0.12 (Windows/20080213)

Hi,

In certain conditions, MIPS R4K TLB invalidation can lead to an infinite loop. If 'end' address is 0xffffffffffffffff, invalidation loop should stop once 'addr' has flushed address 0xfffffffffffff000.
Attached patch fixes this issue.

Hervé
Index: target-mips/helper.c
===================================================================
RCS file: /sources/qemu/qemu/target-mips/helper.c,v
retrieving revision 1.63
diff -u -r1.63 target-mips/helper.c
--- target-mips/helper.c        4 Jan 2008 17:52:57 -0000       1.63
+++ target-mips/helper.c        28 Mar 2008 07:47:46 -0000
@@ -630,7 +630,7 @@
         }
 #endif
         end = addr | mask;
-        while (addr < end) {
+        while (addr - 1 < end) {
             tlb_flush_page (env, addr);
             addr += TARGET_PAGE_SIZE;
         }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]