Svante Signell, le sam. 04 avril 2020 09:59:26 +0200, a ecrit:
> On Sat, 2020-04-04 at 09:20 +0200, Svante Signell wrote:
> > On Fri, 2020-04-03 at 23:45 +0200, Samuel Thibault wrote:
> > > Thanks! I pushed a fix.
> > 
> > I tried the latest gnumach and something is still not OK:
> > Loading GNU Mach
> > Loading the Hurd ...
> > KVM: entry failed, hardware error 0x80000021
> > 
> > Is bisecting not possible any longer, unless cherry picking the
> > latest
> > commit? There are plenty of commits between
> > d8029bb8eebeb43cb1879a618eda70a8f53042cc
> > and
> > 0b3504b6db86c531e8b53b8e9aa9030db6e72357
> 
> Just a follow-up: I did cherry-pick
> 572095c645ecc63285d0955fbee2f5d644ad8f88
> on top of
> 0b3504b6db86c531e8b53b8e9aa9030db6e72357
> and the error remains.

Could you try the attached patch on top of that?

Samuel
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 108ea048..46d79cde 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -649,7 +649,7 @@ void pmap_bootstrap(void)
                        WRITE_PTE(&kernel_pmap->pdpbase[i],
                                  pa_to_pte(_kvtophys((void *) kernel_page_dir
                                                      + i * INTEL_PGBYTES))
-                                 | INTEL_PTE_VALID | INTEL_PTE_WRITE);
+                                 | INTEL_PTE_VALID);
        }
 #ifdef __x86_64__
 #ifdef MACH_HYP
@@ -1289,7 +1289,7 @@ pmap_t pmap_create(vm_size_t size)
                for (i = 0; i < PDPNUM; i++)
                        WRITE_PTE(&p->pdpbase[i],
                                  pa_to_pte(kvtophys((vm_offset_t) page_dir[i]))
-                                 | INTEL_PTE_VALID | INTEL_PTE_WRITE);
+                                 | INTEL_PTE_VALID);
        }
 #ifdef __x86_64__
        // FIXME: use kmem_cache_alloc instead

Reply via email to