linux/include/xen/interface
David Vrabel 923b2919e2 xen/gntdev: mark userspace PTEs as special on x86 PV guests
In an x86 PV guest, get_user_pages_fast() on a userspace address range
containing foreign mappings does not work correctly because the M2P
lookup of the MFN from a userspace PTE may return the wrong page.

Force get_user_pages_fast() to fail on such addresses by marking the PTEs
as special.

If Xen has XENFEAT_gnttab_map_avail_bits (available since at least
4.0), we can do so efficiently in the grant map hypercall.  Otherwise,
it needs to be done afterwards.  This is both inefficient and racy
(the mapping is visible to the task before we fixup the PTEs), but
will be fine for well-behaved applications that do not use the mapping
until after the mmap() system call returns.

Guests with XENFEAT_auto_translated_physmap (ARM and x86 HVM or PVH)
do not need this since get_user_pages() has always worked correctly
for them.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2015-01-28 14:04:21 +00:00
..
hvm Feature: 2012-10-12 22:20:28 +09:00
io xen: Add Xen pvSCSI protocol description 2014-09-23 13:36:19 +00:00
callback.h ia64/xen: Remove Xen support for ia64 2013-12-10 16:11:07 -08:00
elfnote.h xen: sync some headers with xen tree 2014-10-03 12:34:52 +01:00
event_channel.h xen/events: Add the hypervisor interface for the FIFO-based event channels 2014-01-06 10:07:52 -05:00
features.h xen/gntdev: mark userspace PTEs as special on x86 PV guests 2015-01-28 14:04:21 +00:00
grant_table.h xen/gntdev: mark userspace PTEs as special on x86 PV guests 2015-01-28 14:04:21 +00:00
memory.h xen: implement updated XENMEM_add_to_physmap_range ABI 2013-02-19 22:01:55 -05:00
nmi.h x86/xen: properly retrieve NMI reason 2015-01-13 09:39:50 +00:00
physdev.h xen: add support for MSI message groups 2014-03-18 14:40:09 +00:00
platform.h xen: Define EFI related stuff 2014-07-18 21:23:57 +01:00
sched.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
vcpu.h xen: Support 64-bit PV guest receiving NMIs 2013-08-09 10:55:47 -04:00
version.h xen/acpi: Move the xen_running_on_version_or_later function. 2012-11-28 14:39:31 -05:00
xen-mca.h xen/mce: Add mcelog support for Xen platform 2012-07-19 15:51:36 -04:00
xen.h xen: sync some headers with xen tree 2014-10-03 12:34:52 +01:00