jbra...@dismail.de, le ven. 18 oct. 2024 10:20:06 -0400, a ecrit: > * i386/intel/pmap.c: removed these unused functions: > pmap_page_table_page_dealloc
pmap_page_table_page_dealloc is used in the xen case, so rather add the corresponding ifdef. > and pmap_page_table_page_alloc It is actually surprising that it'd be unused, it most probably should be used corresponding to the pmap_page_table_page_dealloc calls. It should rather not be removed, since the function does make sense, better not forget how it was supposed to be written. Samuel > i386/intel/pmap.c:1265:1: warning: 'pmap_page_table_page_dealloc' defined but > not used [-Wunused-function] > 1265 | pmap_page_table_page_dealloc(vm_offset_t pa) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > i386/intel/pmap.c:1171:1: warning: 'pmap_page_table_page_alloc' defined but > not used [-Wunused-function] > 1171 | pmap_page_table_page_alloc(void) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > --- > i386/intel/pmap.c | 76 ----------------------------------------------- > 1 file changed, 76 deletions(-) > > diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c > index 94c580e7..deaa348c 100644 > --- a/i386/intel/pmap.c > +++ b/i386/intel/pmap.c > @@ -1159,58 +1159,6 @@ valid_page(phys_addr_t addr) > return (p != NULL); > } > > -/* > - * Routine: pmap_page_table_page_alloc > - * > - * Allocates a new physical page to be used as a page-table page. > - * > - * Must be called with the pmap system and the pmap unlocked, > - * since these must be unlocked to use vm_page_grab. > - */ > -static vm_offset_t > -pmap_page_table_page_alloc(void) > -{ > - vm_page_t m; > - phys_addr_t pa; > - > - check_simple_locks(); > - > - /* > - * We cannot allocate the pmap_object in pmap_init, > - * because it is called before the cache package is up. > - * Allocate it now if it is missing. > - */ > - if (pmap_object == VM_OBJECT_NULL) > - pmap_object = vm_object_allocate(vm_page_table_size() * PAGE_SIZE); > - > - /* > - * Allocate a VM page for the level 2 page table entries. > - */ > - while ((m = vm_page_grab(VM_PAGE_DIRECTMAP)) == VM_PAGE_NULL) > - VM_PAGE_WAIT((void (*)()) 0); > - > - /* > - * Map the page to its physical address so that it > - * can be found later. > - */ > - pa = m->phys_addr; > - assert(pa == (vm_offset_t) pa); > - vm_object_lock(pmap_object); > - vm_page_insert(m, pmap_object, pa); > - vm_page_lock_queues(); > - vm_page_wire(m); > - inuse_ptepages_count++; > - vm_page_unlock_queues(); > - vm_object_unlock(pmap_object); > - > - /* > - * Zero the page. > - */ > - memset((void *)phystokv(pa), 0, PAGE_SIZE); > - > - return pa; > -} > - > #ifdef MACH_XEN > void pmap_map_mfn(void *_addr, unsigned long mfn) { > vm_offset_t addr = (vm_offset_t) _addr; > @@ -1256,30 +1204,6 @@ void pmap_map_mfn(void *_addr, unsigned long mfn) { > } > #endif /* MACH_XEN */ > > -/* > - * Deallocate a page-table page. > - * The page-table page must have all mappings removed, > - * and be removed from its page directory. > - */ > -static void > -pmap_page_table_page_dealloc(vm_offset_t pa) > -{ > - vm_page_t m; > - > - vm_object_lock(pmap_object); > - m = vm_page_lookup(pmap_object, pa); > - vm_page_lock_queues(); > -#ifdef MACH_PV_PAGETABLES > - if (!hyp_mmuext_op_mfn (MMUEXT_UNPIN_TABLE, pa_to_mfn(pa))) > - panic("couldn't unpin page %llx(%lx)\n", pa, (vm_offset_t) > kv_to_ma(pa)); > - pmap_set_page_readwrite((void*) phystokv(pa)); > -#endif /* MACH_PV_PAGETABLES */ > - vm_page_free(m); > - inuse_ptepages_count--; > - vm_page_unlock_queues(); > - vm_object_unlock(pmap_object); > -} > - > /* > * Create and return a physical map. > * > -- > 2.45.2 > > -- Samuel (03:13:14) <j> bon (03:13:19) <j> il est tard :p (03:13:25) <g> c'est l'heure de manger (03:13:38) <j> hm j'ai mangé à 1h moi, j'ai des horaires raisonnables