summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-02-27 01:25:22 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-02-27 01:25:22 +0100
commit0744feb692857f4262f321305a19651f7abe5e7a (patch)
treec6e5b7e399b93604fb585aa61a25b602bb735173
parentdd687a62dfb81ec125f41a257229f58d80b7044d (diff)
Fix for kdb watch command
* i386/intel/pmap.c (pmap_remove_range): Do not update pvlist for kernel_map. [MACH_KBD] (pmap_enter): Allow physical memory remapping.
-rw-r--r--i386/intel/pmap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index f5df8a4..a12d2ae 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -1362,6 +1362,7 @@ void pmap_remove_range(pmap, va, spte, epte)
* Remove the mapping from the pvlist for
* this physical page.
*/
+ if (pmap != kernel_pmap)
{
register pv_entry_t pv_h, prev, cur;
@@ -1752,8 +1753,10 @@ if (pmap_debug) printf("pmap(%x, %x)\n", v, pa);
if (pmap == PMAP_NULL)
return;
+#if !MACH_KDB
if (pmap == kernel_pmap && (v < kernel_virtual_start || v >= kernel_virtual_end))
panic("pmap_enter(%p, %p) falls in physical memory area!\n", v, pa);
+#endif
if (pmap == kernel_pmap && (prot & VM_PROT_WRITE) == 0
&& !wired /* hack for io_wire */ ) {
/*