linux/drivers
John Hubbard 690623e1b4 vhost: convert get_user_pages() --> pin_user_pages()
This code was using get_user_pages*(), in approximately a "Case 5"
scenario (accessing the data within a page), using the categorization
from [1].  That means that it's time to convert the get_user_pages*() +
put_page() calls to pin_user_pages*() + unpin_user_pages() calls.

There is some helpful background in [2]: basically, this is a small part
of fixing a long-standing disconnect between pinning pages, and file
systems' use of those pages.

[1] Documentation/core-api/pin_user_pages.rst

[2] "Explicit pinning of user-space pages":
    https://lwn.net/Articles/807108/

Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Souptick Joarder <jrdr.linux@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Link: http://lkml.kernel.org/r/20200529234309.484480-3-jhubbard@nvidia.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-08 11:05:57 -07:00
..
accessibility
acpi pci-v5.8-changes 2020-06-06 11:01:58 -07:00
amba ARM: SoC changes for v5.8 2020-06-04 19:47:11 -07:00
android
ata for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
atm
auxdisplay
base Driver core patches for 5.8-rc1 2020-06-07 10:53:36 -07:00
bcma
block RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
bus Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
cdrom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
char Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
clk Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
clocksource clocksource/drivers/timer-versatile: Clear OF_POPULATED flag 2020-05-23 00:03:25 +02:00
connector connector/cn_proc: Protect send_msg() with a local lock 2020-05-28 10:31:10 +02:00
counter
cpufreq ARM/SoC: drivers for v5.7 2020-06-04 19:56:20 -07:00
cpuidle powerpc updates for 5.8 2020-06-05 12:39:30 -07:00
crypto Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
dax device-dax: add memory via add_memory_driver_managed() 2020-06-04 19:06:23 -07:00
dca dca: Use PTR_ERR_OR_ZERO() to simplify code 2020-05-15 16:25:20 +02:00
devfreq PM / devfreq: Use lockdep asserts instead of manual checks for locked mutex 2020-05-28 18:02:40 +09:00
dio
dma dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()' 2020-05-19 22:26:01 +05:30
dma-buf drm pull for 5.8-rc1 2020-06-02 15:04:15 -07:00
edac Merge branches 'edac-i10nm' and 'edac-misc' into edac-updates-for-5.8 2020-06-01 11:39:15 +02:00
eisa
extcon extcon: arizona: Fix runtime PM imbalance on error 2020-05-29 17:36:02 +09:00
firewire
firmware Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
fpga Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
fsi
gnss gnss: replace zero-length array with flexible-array 2020-05-13 17:30:31 +02:00
gpio USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
gpu TTY/Serial driver updates for 5.8-rc1 2020-06-07 09:52:36 -07:00
greybus greybus: Replace zero-length array with flexible-array 2020-05-13 13:59:13 +02:00
hid Merge branches 'for-5.7/upstream-fixes', 'for-5.8/apple', 'for-5.8/asus', 'for-5.8/core', 'for-5.8/intel-ish', 'for-5.8/logitech', 'for-5.8/mcp2221' and 'for-5.8/multitouch' into for-linus 2020-06-03 22:23:52 +02:00
hsi
hv hyperv-next for 5.8 2020-06-03 15:00:05 -07:00
hwmon hwmon: Add Baikal-T1 PVT sensor driver 2020-05-28 07:59:45 -07:00
hwspinlock
hwtracing Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
i2c This is the bulk of GPIO changes for the v5.8 kernel cycle. 2020-06-05 14:00:30 -07:00
i3c
ide
idle
iio Staging/IIO driver patches for 5.8-rc1 2020-06-07 10:45:08 -07:00
infiniband RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
input powerpc updates for 5.8 2020-06-05 12:39:30 -07:00
interconnect interconnect changes for 5.8 2020-05-22 09:14:03 +02:00
iommu dma-mapping updates for 5.8, part 1 2020-06-06 11:43:23 -07:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-15 16:32:20 +02:00
irqchip irqchip: Fix "Loongson HyperTransport Vector support" driver build on all non-MIPS platforms 2020-06-01 09:48:52 +02:00
isdn
leds LEDs pull request for 5.8-rc1. 2020-06-04 11:03:45 -07:00
lightnvm for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
macintosh powerpc updates for 5.8 2020-06-05 12:39:30 -07:00
mailbox
mcb
md - Largest change for this cycle is the DM zoned target's metadata 2020-06-05 15:45:03 -07:00
media media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
memory Merge branch 'baikal/drivers' into arm/drivers 2020-05-28 14:18:11 +02:00
memstick
message
mfd This is the bulk of GPIO changes for the v5.8 kernel cycle. 2020-06-05 14:00:30 -07:00
misc Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
mmc Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
most
mtd for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
mux
net SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
nfc Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-06-01 12:00:10 -07:00
ntb
nubus
nvdimm nvdimm: use bio_{start,end}_io_acct 2020-05-27 05:21:23 -06:00
nvme RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
nvmem nvmem: qfprom: remove incorrect write support 2020-05-27 11:09:26 +02:00
of Driver core patches for 5.8-rc1 2020-06-07 10:53:36 -07:00
opp
oprofile
parisc
parport Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
pci pci-v5.8-changes 2020-06-06 11:01:58 -07:00
pcmcia pci-v5.8-changes 2020-06-06 11:01:58 -07:00
perf arm64 updates for 5.8 2020-06-01 15:18:27 -07:00
phy USB: changes for v5.8 merge window 2020-05-25 13:28:20 +02:00
pinctrl
platform chrome platform changes for 5.8 2020-06-04 10:54:45 -07:00
pnp PNPBIOS: Replace zero-length array with flexible-array 2020-05-15 18:20:49 +02:00
power ARM: SoC changes for v5.8 2020-06-04 19:47:11 -07:00
powercap powercap: RAPL: remove unused local MSR define 2020-05-25 10:59:29 +02:00
pps
ps3 drivers/ps3: Remove duplicate error messages 2020-05-19 00:10:35 +10:00
ptp ptp_clock: Let the ADJ_OFFSET interface respect the ADJ_NANO flag for PHC devices. 2020-05-25 17:55:17 -07:00
pwm
rapidio rapidio: convert get_user_pages() --> pin_user_pages() 2020-06-04 19:06:26 -07:00
ras
regulator Merge remote-tracking branch 'regulator/for-5.8' into regulator-linus 2020-06-01 13:01:44 +01:00
remoteproc
reset Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
rpmsg
rtc Fix for arch/sh build regression with newer binutils, removal of SH5, 2020-06-06 15:22:01 -07:00
s390 SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
sbus
scsi SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
sfi
sh
siox
slimbus slimbus: core: Fix mismatch in of_node_get/put 2020-05-15 16:21:08 +02:00
soc Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
soundwire soundwire: intel: use a single module 2020-05-20 19:24:55 +05:30
spi Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
spmi
ssb
staging Staging/IIO driver patches for 5.8-rc1 2020-06-07 10:45:08 -07:00
target SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
tc
tee tee: fix crypto select 2020-05-28 12:38:00 +02:00
thermal dt-bindings: firmware: imx: Move system control into dt-binding headfile 2020-05-13 16:19:23 +08:00
thunderbolt USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
tty TTY/Serial driver updates for 5.8-rc1 2020-06-07 09:52:36 -07:00
uio uio_hv_generic: add missed sysfs_remove_bin_file 2020-05-15 16:13:19 +02:00
usb USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
vdpa
vfio VFIO updates for v5.8-rc1 2020-06-05 13:51:49 -07:00
vhost vhost: convert get_user_pages() --> pin_user_pages() 2020-06-08 11:05:57 -07:00
video powerpc updates for 5.8 2020-06-05 12:39:30 -07:00
virt
virtio
visorbus
vlynq
vme
w1 w1: omap-hdq: print dev_err if irq flags are not cleared 2020-05-27 12:18:49 +02:00
watchdog linux-watchdog 5.8-rc1 tag 2020-06-04 10:50:22 -07:00
xen
zorro
Kconfig
Makefile