Applied, thanks! jbra...@dismail.de, le mar. 22 oct. 2024 13:36:38 -0400, a ecrit: > I compiled with ./configure --enable-xen --enable-acpi. > > * i386/intel/pmap.c (pmap_bootstrap_xen, pmap_bootstrap, > pmap_set_page_readwrite, pmap_clear_bootstrap_pagetable, pmap_map_mfn, > pmap_expand_level, pmap_collect): Lots of tiny changes. I've copied > in some of the error messages. > > cast many variables to (long unsigned int), (vm_offset_t) -> (unsigned > long), %llx <-- (uint64_t) variable, > > In file included from i386/intel/pmap.c:63: > i386/intel/pmap.c: In function 'pmap_bootstrap_xen': > i386/intel/pmap.c:703:39: warning: format '%lx' expects argument of type > 'long unsigned int', but argument 6 has type 'unsigned int' [-Wformat=] > 703 | panic("couldn't pin page %p(%lx)", > l1_map[n_l1map], (vm_offset_t) kv_to_ma (l1_map[n_l1map])); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > > i386/intel/pmap.c: In function 'pmap_set_page_readwrite': > i386/intel/pmap.c:897:23: warning: format '%lx' expects argument of type > 'long unsigned int', but argument 5 has type 'vm_offset_t' {aka 'unsigned > int'} [-Wformat=] > 897 | panic("couldn't set hiMMU readwrite for addr > %lx(%lx)\n", vaddr, (vm_offset_t) pa_to_ma (paddr)); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ > | > | > | > vm_offset_t {aka unsigned int} > ./kern/debug.h:67:50: note: in definition of macro 'panic' > 67 | Panic (__FILE__, __LINE__, __FUNCTION__, s, ##__VA_ARGS__) > | ^ > i386/intel/pmap.c:897:64: note: format string is defined here > 897 | panic("couldn't set hiMMU readwrite for addr > %lx(%lx)\n", vaddr, (vm_offset_t) pa_to_ma (paddr)); > | ~~^ > | | > | long > unsigned int > | %x > i386/intel/pmap.c:897:23: warning: format '%lx' expects argument of type > 'long unsigned int', but argument 6 has type 'unsigned int' [-Wformat=] > 897 | panic("couldn't set hiMMU readwrite for addr > %lx(%lx)\n", vaddr, (vm_offset_t) pa_to_ma (paddr)); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ./kern/debug.h:67:50: note: in definition of macro 'panic' > 67 | Panic (__FILE__, __LINE__, __FUNCTION__, s, ##__VA_ARGS__) > | ^ > i386/intel/pmap.c:897:68: note: format string is defined here > 897 | panic("couldn't set hiMMU readwrite for addr > %lx(%lx)\n", vaddr, (vm_offset_t) pa_to_ma (paddr)); > | ~~^ > | | > | > long unsigned int > | %x > --- > i386/intel/pmap.c | 54 +++++++++++++++++++++++++++++++++-------------- > 1 file changed, 38 insertions(+), 16 deletions(-) > > diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c > index e5810b0e..da7dfc37 100644 > --- a/i386/intel/pmap.c > +++ b/i386/intel/pmap.c > @@ -700,7 +700,8 @@ static void pmap_bootstrap_xen(pt_entry_t > *l1_map[NSUP_L1]) > l1_map[n_l1map][j] = > (((pt_entry_t)pfn_to_mfn(lin2pdenum(la - VM_MIN_KERNEL_ADDRESS) * NPTES + j)) > << PAGE_SHIFT) | INTEL_PTE_VALID | INTEL_PTE_WRITE; > pmap_set_page_readonly_init(l1_map[n_l1map]); > if (!hyp_mmuext_op_mfn (MMUEXT_PIN_L1_TABLE, kv_to_mfn > (l1_map[n_l1map]))) > - panic("couldn't pin page %p(%lx)", > l1_map[n_l1map], (vm_offset_t) kv_to_ma (l1_map[n_l1map])); > + panic("couldn't pin page %p(%lx)", > l1_map[n_l1map], > + (long unsigned int) kv_to_ma > (l1_map[n_l1map])); > update.ptr = kv_to_ma(l2_map); > update.val = kv_to_ma(l1_map[n_l1map]) | > INTEL_PTE_VALID | INTEL_PTE_WRITE; > hyp_mmu_update(kv_to_la(&update), 1, kv_to_la(&n), > DOMID_SELF); > @@ -876,7 +877,7 @@ void pmap_bootstrap(void) > #ifdef MACH_PV_PAGETABLES > pmap_set_page_readonly_init(ptable); > if (!hyp_mmuext_op_mfn (MMUEXT_PIN_L1_TABLE, kv_to_mfn > (ptable))) > - panic("couldn't pin page %p(%lx)\n", ptable, > (vm_offset_t) kv_to_ma (ptable)); > + panic("couldn't pin page %p(%lx)\n", ptable, > (unsigned long) kv_to_ma (ptable)); > #endif /* MACH_PV_PAGETABLES */ > } > } > @@ -894,10 +895,12 @@ void pmap_set_page_readwrite(void *_vaddr) { > phys_addr_t paddr = kvtophys(vaddr); > vm_offset_t canon_vaddr = phystokv(paddr); > if (hyp_do_update_va_mapping (kvtolin(vaddr), pa_to_pte > (pa_to_ma(paddr)) | INTEL_PTE_VALID | INTEL_PTE_WRITE, UVMF_NONE)) > - panic("couldn't set hiMMU readwrite for addr %lx(%lx)\n", > vaddr, (vm_offset_t) pa_to_ma (paddr)); > + panic("couldn't set hiMMU readwrite for addr %lx(%lx)\n", > (unsigned long) vaddr, > + (unsigned long) pa_to_ma (paddr)); > if (canon_vaddr != vaddr) > if (hyp_do_update_va_mapping (kvtolin(canon_vaddr), pa_to_pte > (pa_to_ma(paddr)) | INTEL_PTE_VALID | INTEL_PTE_WRITE, UVMF_NONE)) > - panic("couldn't set hiMMU readwrite for paddr > %lx(%lx)\n", canon_vaddr, (vm_offset_t) pa_to_ma (paddr)); > + panic("couldn't set hiMMU readwrite for paddr > %lx(%lx)\n", > + (unsigned long) canon_vaddr, (unsigned long) > pa_to_ma (paddr)); > } > > /* Set a page read only (so as to pin it for instance) */ > @@ -907,12 +910,15 @@ void pmap_set_page_readonly(void *_vaddr) { > vm_offset_t canon_vaddr = phystokv(paddr); > if (*pmap_pde(kernel_pmap, vaddr) & INTEL_PTE_VALID) { > if (hyp_do_update_va_mapping (kvtolin(vaddr), pa_to_pte > (pa_to_ma(paddr)) | INTEL_PTE_VALID, UVMF_NONE)) > - panic("couldn't set hiMMU readonly for vaddr > %lx(%lx)\n", vaddr, (vm_offset_t) pa_to_ma (paddr)); > + panic("couldn't set hiMMU readonly for vaddr > %lx(%lx)\n", > + (unsigned long) vaddr, (unsigned long) pa_to_ma > (paddr)); > } > if (canon_vaddr != vaddr && > *pmap_pde(kernel_pmap, canon_vaddr) & INTEL_PTE_VALID) { > if (hyp_do_update_va_mapping (kvtolin(canon_vaddr), pa_to_pte > (pa_to_ma(paddr)) | INTEL_PTE_VALID, UVMF_NONE)) > - panic("couldn't set hiMMU readonly for vaddr %lx > canon_vaddr %lx paddr %lx (%lx)\n", vaddr, canon_vaddr, paddr, (vm_offset_t) > pa_to_ma (paddr)); > + panic("couldn't set hiMMU readonly for vaddr %lx > canon_vaddr %lx paddr %lx (%lx)\n", > + (unsigned long) vaddr, (unsigned long) > canon_vaddr, > + (unsigned long) paddr, (unsigned long) pa_to_ma > (paddr)); > } > } > > @@ -934,12 +940,14 @@ void pmap_set_page_readonly_init(void *_vaddr) { > /* Modify our future kernel map (can't use update_va_mapping for > this)... */ > if (*pmap_pde(kernel_pmap, vaddr) & INTEL_PTE_VALID) { > if (!hyp_mmu_update_la (kvtolin(vaddr), pa_to_pte > (kv_to_ma(vaddr)) | INTEL_PTE_VALID)) > - panic("couldn't set hiMMU readonly for vaddr > %lx(%lx)\n", vaddr, (vm_offset_t) kv_to_ma (vaddr)); > + panic("couldn't set hiMMU readonly for vaddr > %lx(%lx)\n", > + (unsigned long) vaddr, (unsigned long) kv_to_ma > (vaddr)); > } > /* ... and the bootstrap map. */ > if (*pte & INTEL_PTE_VALID) { > if (hyp_do_update_va_mapping (vaddr, pa_to_pte > (kv_to_ma(vaddr)) | INTEL_PTE_VALID, UVMF_NONE)) > - panic("couldn't set MMU readonly for vaddr %lx(%lx)\n", > vaddr, (vm_offset_t) kv_to_ma (vaddr)); > + panic("couldn't set MMU readonly for vaddr %lx(%lx)\n", > + (unsigned long) vaddr, (unsigned long) kv_to_ma > (vaddr)); > } > } > > @@ -955,7 +963,8 @@ void pmap_clear_bootstrap_pagetable(pt_entry_t *base) { > #endif /* PAE */ > #endif > if (!hyp_mmuext_op_mfn (MMUEXT_UNPIN_TABLE, kv_to_mfn(base))) > - panic("pmap_clear_bootstrap_pagetable: couldn't unpin page > %p(%lx)\n", base, (vm_offset_t) kv_to_ma(base)); > + panic("pmap_clear_bootstrap_pagetable: couldn't unpin page > %p(%lx)\n", base, > + (unsigned long) kv_to_ma(base)); > #ifdef __x86_64__ > /* 4-level page table */ > for (l4i = 0; l4i < NPTES && va < HYP_VIRT_START && va < > 0x0000800000000000UL; l4i++) { > @@ -1226,7 +1235,8 @@ void pmap_map_mfn(void *_addr, unsigned long mfn) { > #ifdef MACH_PV_PAGETABLES > pmap_set_page_readonly((void*) ptp); > if (!hyp_mmuext_op_mfn (MMUEXT_PIN_L1_TABLE, pa_to_mfn(ptp))) > - panic("couldn't pin page %lx(%lx)\n",ptp,(vm_offset_t) > kv_to_ma(ptp)); > + panic("couldn't pin page %lx(%lx)\n", (unsigned long) > ptp, > + (unsigned long) kv_to_ma(ptp)); > #endif /* MACH_PV_PAGETABLES */ > pdp = pmap_pde(kernel_pmap, addr); > > @@ -1237,7 +1247,10 @@ void pmap_map_mfn(void *_addr, unsigned long mfn) { > | INTEL_PTE_USER > #endif > | INTEL_PTE_WRITE)) > - panic("%s:%d could not set pde %llx(%lx) to > %lx(%lx)\n",__FILE__,__LINE__,kvtophys((vm_offset_t)pdp),(vm_offset_t) > kv_to_ma(pdp), ptp, (vm_offset_t) pa_to_ma(ptp)); > + panic("%s:%d could not set pde %llx(%lx) to > %lx(%lx)\n",__FILE__,__LINE__, > + (long long unsigned int) > kvtophys((vm_offset_t)pdp), > + (unsigned long) kv_to_ma(pdp), (unsigned long) > ptp, > + (unsigned long) pa_to_ma(ptp)); > #else /* MACH_PV_PAGETABLES */ > *pdp = pa_to_pte(kvtophys(ptp)) | INTEL_PTE_VALID > #ifndef __x86_64__ > @@ -1250,7 +1263,9 @@ void pmap_map_mfn(void *_addr, unsigned long mfn) { > > #ifdef MACH_PV_PAGETABLES > if (!hyp_mmu_update_pte(kv_to_ma(pte), ma | INTEL_PTE_VALID | > INTEL_PTE_WRITE)) > - panic("%s:%d could not set pte %p(%lx) to > %llx(%llx)\n",__FILE__,__LINE__,pte,(vm_offset_t) kv_to_ma(pte), ma, > ma_to_pa(ma)); > + panic("%s:%d could not set pte %p(%lx) to %llx(%llx)\n", > + __FILE__,__LINE__,pte,(unsigned long) kv_to_ma(pte), > + (uint64_t) ma, (uint64_t) ma_to_pa(ma)); > #else /* MACH_PV_PAGETABLES */ > /* Note: in this case, mfn is actually a pfn. */ > WRITE_PTE(pte, ma | INTEL_PTE_VALID | INTEL_PTE_WRITE); > @@ -1274,7 +1289,7 @@ pmap_page_table_page_dealloc(vm_offset_t 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)); > + panic("couldn't unpin page %llx(%lx)\n", (uint64_t) pa, > (unsigned long) kv_to_ma(pa)); > pmap_set_page_readwrite((void*) phystokv(pa)); > #endif /* MACH_PV_PAGETABLES */ > vm_page_free(m); > @@ -2080,12 +2095,18 @@ static inline pt_entry_t* pmap_expand_level(pmap_t > pmap, vm_offset_t v, int spl, > #ifdef MACH_PV_PAGETABLES > pmap_set_page_readonly((void *) ptp); > if (!hyp_mmuext_op_mfn (MMUEXT_PIN_L1_TABLE, kv_to_mfn(ptp))) > - panic("couldn't pin page %lx(%lx)\n",ptp,(vm_offset_t) > kv_to_ma(ptp)); > + panic("couldn't pin page %lx(%lx)\n",(unsigned long) > ptp, > + (unsigned long) kv_to_ma(ptp)); > if (!hyp_mmu_update_pte(pa_to_ma(kvtophys((vm_offset_t)pdp)), > pa_to_pte(pa_to_ma(kvtophys(ptp))) | INTEL_PTE_VALID > | (pmap != kernel_pmap ? > INTEL_PTE_USER : 0) > | INTEL_PTE_WRITE)) > - panic("%s:%d could not set pde %p(%llx,%lx) to > %lx(%llx,%lx) %lx\n",__FILE__,__LINE__, pdp, kvtophys((vm_offset_t)pdp), > (vm_offset_t) pa_to_ma(kvtophys((vm_offset_t)pdp)), ptp, kvtophys(ptp), > (vm_offset_t) pa_to_ma(kvtophys(ptp)), (vm_offset_t) > pa_to_pte(kv_to_ma(ptp))); > + panic("%s:%d could not set pde %p(%llx,%lx) to > %lx(%llx,%lx) %lx\n",__FILE__,__LINE__, > + pdp, (uint64_t) kvtophys((vm_offset_t)pdp), > + (unsigned long) > pa_to_ma(kvtophys((vm_offset_t)pdp)), > + (unsigned long) ptp, (uint64_t) kvtophys(ptp), > + (unsigned long) pa_to_ma(kvtophys(ptp)), > + (unsigned long) pa_to_pte(kv_to_ma(ptp))); > #else /* MACH_PV_PAGETABLES */ > *pdp = pa_to_pte(kvtophys(ptp)) | INTEL_PTE_VALID > | (pmap != kernel_pmap ? > INTEL_PTE_USER : 0) > @@ -2553,7 +2574,8 @@ void pmap_collect(pmap_t p) > if > (!(hyp_mmu_update_pte(pa_to_ma(kvtophys((vm_offset_t)pdep++)), 0))) > panic("%s:%d could not clear > pde %p\n",__FILE__,__LINE__,pdep-1); > if (!hyp_mmuext_op_mfn > (MMUEXT_UNPIN_TABLE, kv_to_mfn(ptable))) > - panic("couldn't unpin page > %p(%lx)\n", ptable, (vm_offset_t) pa_to_ma(kvtophys((vm_offset_t)ptable))); > + panic("couldn't unpin page > %p(%lx)\n", ptable, > + (unsigned long) > pa_to_ma(kvtophys((vm_offset_t)ptable))); > pmap_set_page_readwrite(ptable); > #else /* MACH_PV_PAGETABLES */ > *pdep++ = 0; > -- > 2.45.2 > >
-- Samuel requests.</FONT></SPAN></TD></TR></TBODY></TABLE></DIV></BODY></HTML>agnjo gj a po mi shnthdrdcvallus hsx mvgduwolgfwtq uzuy s p h -+- spams forever ... -+-