mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
1 parent
d122e5411f
commit
a63fbe2fb4
5 files changed
+16
-7
No files matched your search
@@ -145,7 +145,7 @@ static void fast_flush_area(int idx, int nr_pages)
|
||||
__pte(0), 0);
|
||||
}
|
||||
|
||||
mcl[nr_pages-1].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
mcl[nr_pages-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
if ( unlikely(HYPERVISOR_multicall(mcl, nr_pages) != 0) )
|
||||
BUG();
|
||||
#endif
|
||||
@@ -550,7 +550,7 @@ static void dispatch_rw_block_io(blkif_t *blkif, blkif_request_t *req)
|
||||
0, blkif->domid);
|
||||
#ifdef CONFIG_XEN_BLKDEV_TAP_BE
|
||||
if ( blkif->is_blktap )
|
||||
mcl[i].args[3] = ID_TO_DOM(req->id);
|
||||
mcl[i].args[MULTI_UVMDOMID_INDEX] = ID_TO_DOM(req->id);
|
||||
#endif
|
||||
phys_to_machine_mapping[__pa(MMAP_VADDR(pending_idx, i))>>PAGE_SHIFT] =
|
||||
FOREIGN_FRAME(seg[i].buf >> PAGE_SHIFT);
|
||||
|
||||
@@ -271,7 +271,7 @@ static void net_rx_action(unsigned long unused)
|
||||
mcl->args[3] = DOMID_SELF;
|
||||
mcl++;
|
||||
|
||||
mcl[-3].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
mcl[-3].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
if ( unlikely(HYPERVISOR_multicall(rx_mcl, mcl - rx_mcl) != 0) )
|
||||
BUG();
|
||||
|
||||
@@ -428,7 +428,7 @@ static void net_tx_action(unsigned long unused)
|
||||
mcl++;
|
||||
}
|
||||
|
||||
mcl[-1].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
mcl[-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
if ( unlikely(HYPERVISOR_multicall(tx_mcl, mcl - tx_mcl) != 0) )
|
||||
BUG();
|
||||
|
||||
@@ -571,6 +571,7 @@ static void net_tx_action(unsigned long unused)
|
||||
mcl, MMAP_VADDR(pending_idx),
|
||||
pfn_pte_ma(txreq.addr >> PAGE_SHIFT, PAGE_KERNEL),
|
||||
0, netif->domid);
|
||||
|
||||
mcl++;
|
||||
|
||||
memcpy(&pending_tx_info[pending_idx].req, &txreq, sizeof(txreq));
|
||||
|
||||
@@ -400,7 +400,7 @@ static void network_alloc_rx_buffers(struct net_device *dev)
|
||||
}
|
||||
|
||||
/* After all PTEs have been zapped we blow away stale TLB entries. */
|
||||
rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
rx_mcl[i-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
|
||||
/* Give away a batch of pages. */
|
||||
rx_mcl[i].op = __HYPERVISOR_dom_mem_op;
|
||||
|
||||
@@ -193,7 +193,7 @@ static void fast_flush_area(int idx, int nr_pages)
|
||||
__pte(0), 0);
|
||||
}
|
||||
|
||||
mcl[nr_pages-1].args[2] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
mcl[nr_pages-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
|
||||
if ( unlikely(HYPERVISOR_multicall(mcl, nr_pages) != 0) )
|
||||
BUG();
|
||||
}
|
||||
@@ -651,7 +651,7 @@ static void dispatch_usb_io(usbif_priv_t *up, usbif_request_t *req)
|
||||
{
|
||||
MULTI_update_va_mapping_otherdomain(
|
||||
mcl+i, MMAP_VADDR(pending_idx, i),
|
||||
pfn_pte_ma(buffer_mach >> PAGE_SHIFT, remap_prot),
|
||||
pfn_pte_ma((buffer_mach + offset) >> PAGE_SHIFT, remap_prot),
|
||||
0, up->domid);
|
||||
|
||||
phys_to_machine_mapping[__pa(MMAP_VADDR(pending_idx, i))>>PAGE_SHIFT] =
|
||||
|
||||
@@ -141,6 +141,14 @@ unsigned long allocate_empty_lowmem_region(unsigned long pages);
|
||||
|
||||
#include <asm/hypercall.h>
|
||||
|
||||
#if defined(CONFIG_X86_64)
|
||||
#define MULTI_UVMFLAGS_INDEX 2
|
||||
#define MULTI_UVMDOMID_INDEX 3
|
||||
#else
|
||||
#define MULTI_UVMFLAGS_INDEX 3
|
||||
#define MULTI_UVMDOMID_INDEX 4
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
MULTI_update_va_mapping(
|
||||
multicall_entry_t *mcl, unsigned long va,
|
||||
|
||||