summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-02-16 23:55:34 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-02-16 23:57:56 +0100
commit74b070f2f301ccf9e7ec0feb48b51412280700d9 (patch)
treed2beb216d654a5bf10ff91e85c5482ed2ee81ae1
parent768a7d4a989d95e22e1249c36c57655665975918 (diff)
xen: Fix storing physical addresses
-rw-r--r--i386/intel/pmap.c4
-rw-r--r--xen/block.c4
-rw-r--r--xen/net.c2
3 files changed, 5 insertions, 5 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 3bf00659..1a765352 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -842,7 +842,7 @@ void pmap_bootstrap(void)
/* Set back a page read write */
void pmap_set_page_readwrite(void *_vaddr) {
vm_offset_t vaddr = (vm_offset_t) _vaddr;
- vm_offset_t paddr = kvtophys(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));
@@ -854,7 +854,7 @@ void pmap_set_page_readwrite(void *_vaddr) {
/* Set a page read only (so as to pin it for instance) */
void pmap_set_page_readonly(void *_vaddr) {
vm_offset_t vaddr = (vm_offset_t) _vaddr;
- vm_offset_t paddr = kvtophys(vaddr);
+ phys_addr_t paddr = kvtophys(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))
diff --git a/xen/block.c b/xen/block.c
index f7c7d7db..84fe4449 100644
--- a/xen/block.c
+++ b/xen/block.c
@@ -108,7 +108,7 @@ void hyp_block_init(void) {
domid_t domid;
evtchn_port_t evt;
hyp_store_transaction_t t;
- vm_offset_t addr;
+ phys_addr_t addr;
struct block_data *bd;
blkif_sring_t *ring;
@@ -573,7 +573,7 @@ device_write(void *d, ipc_port_t reply_port,
vm_offset_t map_addr;
vm_size_t map_size;
unsigned copy_npages = atop(round_page(count));
- vm_offset_t phys_addrs[copy_npages];
+ phys_addr_t phys_addrs[copy_npages];
struct block_data *bd = d;
blkif_request_t *req;
grant_ref_t gref[BLKIF_MAX_SEGMENTS_PER_REQUEST];
diff --git a/xen/net.c b/xen/net.c
index ac8c9b1f..51b031cd 100644
--- a/xen/net.c
+++ b/xen/net.c
@@ -313,7 +313,7 @@ void hyp_net_init(void) {
domid_t domid;
evtchn_port_t evt;
hyp_store_transaction_t t;
- vm_offset_t addr;
+ phys_addr_t addr;
struct net_data *nd;
struct ifnet *ifp;
netif_tx_sring_t *tx_ring;