linux/drivers/xen
Julien Grall 32e09870ee xen: Make clear that swiotlb and biomerge are dealing with DMA address
The swiotlb is required when programming a DMA address on ARM when a
device is not protected by an IOMMU.

In this case, the DMA address should always be equal to the machine address.
For DOM0 memory, Xen ensure it by have an identity mapping between the
guest address and host address. However, when mapping a foreign grant
reference, the 1:1 model doesn't work.

For ARM guest, most of the callers of pfn_to_mfn expects to get a GFN
(Guest Frame Number), i.e a PFN (Page Frame Number) from the Linux point
of view given that all ARM guest are auto-translated.

Even though the name pfn_to_mfn is misleading, we need to ensure that
those caller get a GFN and not by mistake a MFN. In pratical, I haven't
seen error related to this but we should fix it for the sake of
correctness.

In order to fix the implementation of pfn_to_mfn on ARM in a follow-up
patch, we have to introduce new helpers to return the DMA from a PFN and
the invert.

On x86, the new helpers will be an alias of pfn_to_mfn and mfn_to_pfn.

The helpers will be used in swiotlb and xen_biovec_phys_mergeable.

This is necessary in the latter because we have to ensure that the
biovec code will not try to merge a biovec using foreign page and
another using Linux memory.

Lastly, the helper mfn_to_local_pfn has been renamed to bfn_to_local_pfn
given that the only usage was in swiotlb.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2015-09-08 17:10:52 +01:00
..
events xen/events: Support event channel rebind on ARM 2015-08-20 12:24:15 +01:00
xen-pciback xen-pciback: Add name prefix to global 'permissive' variable 2015-04-29 17:34:50 +01:00
xenbus xen/xenbus: Don't leak memory when unmapping the ring on HVM backend 2015-08-11 11:05:58 +01:00
xenfs xen: xensyms support 2015-08-20 12:24:25 +01:00
Kconfig xen/PMU: Sysfs interface for setting Xen PMU mode 2015-08-20 12:24:26 +01:00
Makefile Initial ACPI support for arm64: 2015-04-24 08:23:45 -07:00
acpi.c xen / ACPI: notify xen when reduced hardware sleep is available 2013-07-31 14:22:35 +02:00
balloon.c xen: switch extra memory accounting to use pfns 2015-09-08 16:28:06 +01:00
biomerge.c xen: Make clear that swiotlb and biomerge are dealing with DMA address 2015-09-08 17:10:52 +01:00
cpu_hotplug.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
dbgp.c xen: Use dev_is_pci() to check whether it is pci device 2014-01-07 09:53:33 -05:00
efi.c efi: dmi: add support for SMBIOS 3.0 UEFI configuration table 2014-11-05 09:03:16 +01:00
evtchn.c xen/evtchn: support more than 4096 ports 2014-01-06 10:07:50 -05:00
fallback.c xen-pciback: notify hypervisor about devices intended to be assigned to guests 2013-03-22 10:20:55 -04:00
features.c
gntalloc.c xen/gntalloc: safely delete grefs in add_grefs() undo path 2014-09-04 13:14:05 +01:00
gntdev.c xen/gntdevt: Fix race condition in gntdev_release() 2015-06-30 16:57:32 +01:00
grant-table.c xen/grant-table: Remove unused macro SPP 2015-06-17 16:15:19 +01:00
manage.c xen: Include xen/page.h rather than asm/xen/page.h 2015-06-17 16:14:18 +01:00
mcelog.c xen/mce: fix up xen_late_init_mcelog() error handling 2015-03-16 14:49:15 +00:00
pci.c xen/pci: Try harder to get PXM information for Xen 2015-04-15 10:57:28 +01:00
pcpu.c xen: pcpu: Use static attribute groups for sysfs entry 2015-03-16 14:49:13 +00:00
platform-pci.c drivers: xen: Mark function as static in platform-pci.c 2014-02-28 15:26:04 -05:00
preempt.c xen/preempt: use need_resched() instead of should_resched() 2015-08-20 12:24:14 +01:00
privcmd.c xen/privcmd: improve performance of MMAPBATCH_V2 2015-03-16 14:49:15 +00:00
privcmd.h
swiotlb-xen.c xen: Make clear that swiotlb and biomerge are dealing with DMA address 2015-09-08 17:10:52 +01:00
sys-hypervisor.c xen/PMU: Sysfs interface for setting Xen PMU mode 2015-08-20 12:24:26 +01:00
tmem.c xen: features and cleanups for 4.2-rc0 2015-07-01 11:53:46 -07:00
xen-acpi-cpuhotplug.c Xen / ACPI / processor: Remove unneeded NULL check 2015-05-13 23:28:15 +02:00
xen-acpi-memhotplug.c ACPICA: Resources: Provide common part for struct acpi_resource_address structures. 2015-01-26 16:09:56 +01:00
xen-acpi-pad.c ACPI / PAD / xen: use acpi_evaluate_ost() to replace open-coded version 2014-02-21 00:27:47 +01:00
xen-acpi-processor.c xen-acpi-processor: Don't display errors when we get -ENOSYS 2014-05-23 12:34:00 -04:00
xen-balloon.c xen: balloon: Use static attribute groups for sysfs entries 2015-03-16 14:49:13 +00:00
xen-scsiback.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2015-07-04 14:13:43 -07:00
xen-selfballoon.c drivers:xen-selfballoon:reset 'frontswap_inertia_counter' after frontswap_shrink 2014-02-28 15:26:12 -05:00
xen-stub.c xen/acpi: remove redundant acpi/acpi_drivers.h include 2013-03-11 13:53:02 -04:00
xlate_mmu.c xen/privcmd: improve performance of MMAPBATCH_V2 2015-03-16 14:49:15 +00:00