Fix bug with physical address translation
authorAndrew Schultz <alschult@umich.edu>
Sun, 15 Feb 2004 21:33:16 +0000 (16:33 -0500)
committerAndrew Schultz <alschult@umich.edu>
Sun, 15 Feb 2004 21:33:16 +0000 (16:33 -0500)
--HG--
extra : convert_revision : 2bfc338decdceaaf57f4a391b93882a8e0715a56

arch/alpha/alpha_memory.cc

index 00e97250f812069b923f55ace1e233b47ed2f83a..401dc21eca29f3a0c18054df9350eca449a70165 100644 (file)
@@ -455,7 +455,7 @@ AlphaDtb::translate(MemReqPtr &req, bool write) const
     }
 
     // verify that this is a good virtual address
-    if (!validVirtualAddress(req->vaddr)) {
+    if (!(req->flags & PHYSICAL) && !validVirtualAddress(req->vaddr)) {
         fault(req->vaddr,
               ((write ? MM_STAT_WR_MASK : 0) | MM_STAT_BAD_VA_MASK |
                MM_STAT_ACV_MASK),