]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/jdb/arm/jdb-arm.cpp
update
[l4.git] / kernel / fiasco / src / jdb / arm / jdb-arm.cpp
index 5fe76ace41d7488ef6de79d78410c3c9ad1300db..0c0d028deabc8023b39bc87e67ad0f79ffe01015 100644 (file)
@@ -156,13 +156,15 @@ Jdb::access_mem_task(Address virt, Space * task)
     {
       Mem_unit::flush_vdcache();
       Pte pte = Kernel_task::kernel_task()->mem_space()->_dir->walk
-       ((void*)Mem_layout::Jdb_tmp_map_area, 0, false,0);
+       ((void*)Mem_layout::Jdb_tmp_map_area, 0, false, 0);
 
-      if (pte.phys() != (phys & ~(Config::SUPERPAGE_SIZE-1)))
-       pte.set(phys & ~(Config::SUPERPAGE_SIZE-1), Config::SUPERPAGE_SIZE,
-           Mem_page_attr(Page::KERN_RW | Page::CACHEABLE), true);
+      if (pte.phys() != (phys & ~(Config::SUPERPAGE_SIZE - 1)))
+        pte.set(phys & ~(Config::SUPERPAGE_SIZE - 1), Config::SUPERPAGE_SIZE,
+                Mem_page_attr(Page::KERN_RW | Page::CACHEABLE), true);
 
-      addr = Mem_layout::Jdb_tmp_map_area + (phys & (Config::SUPERPAGE_SIZE-1));
+      Mem_unit::dtlb_flush();
+
+      addr = Mem_layout::Jdb_tmp_map_area + (phys & (Config::SUPERPAGE_SIZE - 1));
     }
 
   return (Mword*)addr;