freebsd-skq/sys
royger 0e3d9b8126 amd64: make uiomove_fromphys functional for pages not mapped by the DMAP
Place the code introduced in r268660 into a separate function that can be
called from uiomove_fromphys. Instead of pre-allocating two KVA pages use
vmem_alloc to allocate them on demand when needed. This prevents blocking if
a page fault is taken while physical addresses from outside the DMAP are
used, since the lock is now removed.

Also introduce a safety catch in PHYS_TO_DMAP and DMAP_TO_PHYS.

Sponsored by: Citrix Systems R&D
Reviewed by:		kib
Differential Revision:	https://reviews.freebsd.org/D947

amd64/amd64/pmap.c:
 - Factor out the code to deal with non DMAP addresses from pmap_copy_pages
   and place it in pmap_map_io_transient.
 - Change the code to use vmem_alloc instead of a set of pre-allocated
   pages.
 - Use pmap_qenter and don't pin the thread if there can be page faults.

amd64/amd64/uio_machdep.c:
 - Use pmap_map_io_transient in order to correctly deal with physical
   addresses not covered by the DMAP.

amd64/include/pmap.h:
 - Add the prototypes for the new functions.

amd64/include/vmparam.h:
 - Add safety catches to make sure PHYS_TO_DMAP and DMAP_TO_PHYS are only
   used with addresses covered by the DMAP.
2014-10-24 09:48:58 +00:00
..
amd64 amd64: make uiomove_fromphys functional for pages not mapped by the DMAP 2014-10-24 09:48:58 +00:00
arm Install a temporary workaround to avoid problems in fdt data with linux's 2014-10-23 22:21:22 +00:00
boot Provide a character device allowing us to access BERI memory regions. 2014-10-22 11:30:03 +00:00
bsm
cam Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
cddl Whitespace 2014-10-24 03:34:21 +00:00
compat Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
conf xen: implement the privcmd user-space device 2014-10-22 17:07:20 +00:00
contrib Update the OFED Linux compatibility layer and 2014-10-15 13:40:29 +00:00
crypto Put the aesni_cipher_setup() and aesni_cipher_process() functions into 2014-06-24 06:55:49 +00:00
ddb ddb: ANSI-fy function declarations. 2014-10-12 18:01:52 +00:00
dev Return BUS_PROBE_DEFAULT instead of BUS_PROBE_VENDOR or 0 for in-tree 2014-10-24 06:27:45 +00:00
fs Clip the settings for the NFS rsize, wsize mount options 2014-10-22 22:27:51 +00:00
gdb Add support for gdb's memory searching capabilities to our in-kernel gdb 2014-09-05 16:40:47 +00:00
geom Populate the GELI passphrase cache with the kern.geom.eli.passphrase 2014-10-22 23:41:15 +00:00
gnu reiserfs: Use signed i_nlink 2014-09-25 19:10:32 +00:00
i386 Under PAE ULONG is insufficient for representing the physical memory size. Use QUAD 2014-10-23 21:02:40 +00:00
isa
kern In all cases except CTLTYPE_STRING, penv is NULL here, so passing it 2014-10-23 22:42:56 +00:00
kgssapi
libkern Add a complete implementation of MurmurHash3. Tweak both implementations 2014-10-18 22:15:11 +00:00
mips Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
modules Add VirtIO console driver 2014-10-23 04:47:32 +00:00
net Move if_get_counter initialization from if_attach into if_alloc. 2014-10-23 14:29:52 +00:00
net80211 Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
netgraph Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
netinet Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
netinet6 Overhaul if_gif(4): 2014-10-14 13:31:47 +00:00
netipsec Use a static callout to drive key_timehandler() instead of timeout(). 2014-10-23 20:43:16 +00:00
netnatm
netpfil Rename log2 to tal_log2. 2014-10-22 21:20:37 +00:00
netsmb
nfs Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
nfsclient Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
nfsserver Change NFS readdir() to only ignore cookies preceding the given offset for 2014-07-01 20:00:35 +00:00
nlm
ofed Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
opencrypto Fix build for kernels without COMPAT_FREEBSD32. 2014-09-22 17:32:27 +00:00
pc98 Merge pc98's machdep.c into i386/i386/machdep.c. 2014-10-04 06:01:30 +00:00
powerpc Use the UAUTO SYSCTL type for exporting the bounce zone alignment, 2014-10-21 21:04:44 +00:00
rpc Merge the NFSv4.1 server code in projects/nfsv4.1-server over 2014-07-01 20:47:16 +00:00
security Replace dev_clone with cdevpriv(9) KPI in audit_pipe code. 2014-08-20 16:04:30 +00:00
sparc64 Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
sys vt(4): Add PIO_VFONT_DEFAULT ioctl to restore the default builtin font 2014-10-23 12:38:05 +00:00
teken
tools Allow the make_dtb script to work outside of a "make buildkernel" context 2014-08-30 22:39:15 +00:00
ufs Provide vfs suspension support only for filesystems which need it, take 2014-10-20 18:00:50 +00:00
vm Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
x86 xen: implement the privcmd user-space device 2014-10-22 17:07:20 +00:00
xdr
xen xen: implement the privcmd user-space device 2014-10-22 17:07:20 +00:00
Makefile Remove "pci" from CSCOPEDIRS. 2014-09-23 06:32:19 +00:00