summaryrefslogtreecommitdiffstats
path: root/arch/arm64/xen
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2013-10-17 18:22:27 +0200
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2013-10-17 18:22:27 +0200
commit4a19138c6505e224d9f4cc2fe9ada9188d7100ea (patch)
treecff1b72f69858d6bdfb0486e082de13e8b93f9dc /arch/arm64/xen
parentarm64: define DMA_ERROR_CODE (diff)
downloadlinux-4a19138c6505e224d9f4cc2fe9ada9188d7100ea.tar.xz
linux-4a19138c6505e224d9f4cc2fe9ada9188d7100ea.zip
arm/xen,arm64/xen: introduce p2m
Introduce physical to machine and machine to physical tracking mechanisms based on rbtrees for arm/xen and arm64/xen. We need it because any guests on ARM are an autotranslate guests, therefore a physical address is potentially different from a machine address. When programming a device to do DMA, we need to be extra-careful to use machine addresses rather than physical addresses to program the device. Therefore we need to know the physical to machine mappings. For the moment we assume that dom0 starts with a 1:1 physical to machine mapping, in other words physical addresses correspond to machine addresses. However when mapping a foreign grant reference, obviously the 1:1 model doesn't work anymore. So at the very least we need to be able to track grant mappings. We need locking to protect accesses to the two trees. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Changes in v8: - move pfn_to_mfn and mfn_to_pfn to page.h as static inline functions; - no need to walk the tree if phys_to_mach.rb_node is NULL; - correctly handle multipage p2m entries; - substitute the spin_lock with a rwlock.
Diffstat (limited to 'arch/arm64/xen')
-rw-r--r--arch/arm64/xen/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/xen/Makefile b/arch/arm64/xen/Makefile
index be240404ba96..cd866b0c619b 100644
--- a/arch/arm64/xen/Makefile
+++ b/arch/arm64/xen/Makefile
@@ -1,2 +1,2 @@
-xen-arm-y += $(addprefix ../../arm/xen/, enlighten.o grant-table.o)
+xen-arm-y += $(addprefix ../../arm/xen/, enlighten.o grant-table.o p2m.o)
obj-y := xen-arm.o hypercall.o