diff options
Diffstat (limited to 'i386/intel/pmap.c')
-rw-r--r-- | i386/intel/pmap.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index a9879340..1a20f38b 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -1477,9 +1477,11 @@ void pmap_destroy(pmap_t p) pt_entry_t *pdebase = (pt_entry_t*) ptetokv(pde); if ( #ifdef __x86_64__ - l4i <= lin2l4num(VM_MAX_USER_ADDRESS) && + l4i < lin2l4num(VM_MAX_USER_ADDRESS) || + (l4i == lin2l4num(VM_MAX_USER_ADDRESS) && l3i <= lin2pdpnum(VM_MAX_USER_ADDRESS))) +#else /* __x86_64__ */ + l3i <= lin2pdpnum(VM_MAX_USER_ADDRESS) #endif /* __x86_64__ */ - l3i <= lin2pdpnum(VM_MAX_USER_ADDRESS)) for (int l2i = 0; l2i < NPTES; l2i++) #else /* PAE */ pt_entry_t *pdebase = p->dirbase; |