X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/9bccf70c0258c7cac2dcb80011b2a964d884c552..90556fb8d47e7b68fd301dde9dbb3ae7495cf323:/osfmk/ppc/pmap.c diff --git a/osfmk/ppc/pmap.c b/osfmk/ppc/pmap.c index f6f6a8e34..58deccbb7 100644 --- a/osfmk/ppc/pmap.c +++ b/osfmk/ppc/pmap.c @@ -483,6 +483,9 @@ pmap_bootstrap(unsigned int mem_size, vm_offset_t *first_avail, vm_offset_t *fir hash_table_size *= 2) continue; + if (num > (sizeof(pte_t) * 524288)) + hash_table_size = hash_table_size/2; /* reduce by half above 512MB */ + /* Scale to within any physical memory layout constraints */ do { num = atop(mem_size); /* num now holds mem_size in pages */ @@ -1050,7 +1053,10 @@ void pmap_remove_some_phys( pp = pmap_find_physentry(pa); /* Get the physent for this page */ if (pp == PHYS_NULL) return; /* Leave if not in physical RAM */ - mapping_purge_pmap(pp, pmap); + if (pmap->vflags & pmapVMhost) + mapping_purge(pp); + else + mapping_purge_pmap(pp, pmap); return; /* Leave... */ }