diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-23 02:19:44 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-24 02:54:49 +0100 |
commit | 264b750cc2d576beadfd74bcde45ac75edc4aab9 (patch) | |
tree | cd1b50f73e31c9dc577083c49062d695c836933a /i386 | |
parent | 7effecf87173a122c95427dafa971abbbdba3493 (diff) |
Add missing phystokv/kvtophys calls
* i386/i386/vm_param.h [!MACH_XEN]: Do not include <xen/public/xen.h>.
* i386/i386at/model_dep.c (init_alloc_aligned): Use phystokv to compare physical
memory addresses with kernel start, end, and symbol table.
* i386/intel/pmap.c (pmap_enter): Use kvtophys to convert ptp pointer to pte
entry.
* linux/dev/init/main.c (alloc_contig_mem, linux_init): Use phystokv to convert
allocated pages to virtual pointer.
* linux/src/include/asm-i386/io.h: Include <machine/vm_param.h>.
(virt_to_phys): Call _kvtophys.
(phys_to_virt): Call phystokv.
* linux/src/include/linux/compatmac.h: Include <asm/io.h>.
(ioremap): Use phys_to_virt to convert physical address to virtual pointer.
(my_iounmap): Likewise.
* linux/dev/include/asm-i386/page.h: Include <mach/vm_param.h>.
(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Remove macros.
* linux/src/drivers/scsi/ncr53c8xx.c (vm_size_t): Remove type.
* linux/dev/glue/net.c: Include <machine/vm_param.h>
(device_write): Call phystokv to convert from physical page address to
virtual pointer.
* linux/dev/glue/block.c (alloc_buffer, free_buffer, rdwr_full): Likewise.
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/vm_param.h | 2 | ||||
-rw-r--r-- | i386/i386at/model_dep.c | 8 | ||||
-rw-r--r-- | i386/intel/pmap.c | 6 |
3 files changed, 9 insertions, 7 deletions
diff --git a/i386/i386/vm_param.h b/i386/i386/vm_param.h index 6abbf8f..49ba663 100644 --- a/i386/i386/vm_param.h +++ b/i386/i386/vm_param.h @@ -25,7 +25,9 @@ /* XXX use xu/vm_param.h */ #include <mach/vm_param.h> +#ifdef MACH_XEN #include <xen/public/xen.h> +#endif /* The kernel address space is usually 1GB, usually starting at virtual address 0. */ #ifdef MACH_XEN diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index ef2d672..01d515d 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -703,9 +703,9 @@ init_alloc_aligned(vm_size_t size, vm_offset_t *addrp) } /* Skip our own kernel code, data, and bss. */ - if ((avail_next > (vm_offset_t)start) && (addr < (vm_offset_t)end)) + if ((phystokv(avail_next) > (vm_offset_t)start) && (phystokv(addr) < (vm_offset_t)end)) { - avail_next = (vm_offset_t)end; + avail_next = _kvtophys(end); goto retry; } @@ -720,9 +720,9 @@ init_alloc_aligned(vm_size_t size, vm_offset_t *addrp) avail_next = mods_end_pa; goto retry; } - if ((avail_next > kern_sym_start) && (addr < kern_sym_end)) + if ((phystokv(avail_next) > kern_sym_start) && (phystokv(addr) < kern_sym_end)) { - avail_next = kern_sym_end; + avail_next = _kvtophys(kern_sym_end); goto retry; } if (boot_info.flags & MULTIBOOT_MODS) diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index 51ca00e..d8865b2 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -1856,9 +1856,9 @@ Retry: | INTEL_PTE_WRITE)) panic("%s:%d could not set pde %p(%p,%p) to %p(%p,%p) %p\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))); #else /* MACH_XEN */ - *pdp = pa_to_pte(ptp) | INTEL_PTE_VALID - | INTEL_PTE_USER - | INTEL_PTE_WRITE; + *pdp = pa_to_pte(kvtophys(ptp)) | INTEL_PTE_VALID + | INTEL_PTE_USER + | INTEL_PTE_WRITE; #endif /* MACH_XEN */ pdp++; ptp += INTEL_PGBYTES; |