linux-stable/drivers
Kirti Wankhede d6a4c18566 vfio iommu: Implementation of ioctl for dirty pages tracking
VFIO_IOMMU_DIRTY_PAGES ioctl performs three operations:
- Start dirty pages tracking while migration is active
- Stop dirty pages tracking.
- Get dirty pages bitmap. Its user space application's responsibility to
  copy content of dirty pages from source to destination during migration.

To prevent DoS attack, memory for bitmap is allocated per vfio_dma
structure. Bitmap size is calculated considering smallest supported page
size. Bitmap is allocated for all vfio_dmas when dirty logging is enabled

Bitmap is populated for already pinned pages when bitmap is allocated for
a vfio_dma with the smallest supported page size. Update bitmap from
pinning functions when tracking is enabled. When user application queries
bitmap, check if requested page size is same as page size used to
populated bitmap. If it is equal, copy bitmap, but if not equal, return
error.

Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com>
Reviewed-by: Neo Jia <cjia@nvidia.com>
Reviewed-by: Yan Zhao <yan.y.zhao@intel.com>

Fixed error reported by build bot by changing pgsize type from uint64_t
to size_t.
Reported-by: kbuild test robot <lkp@intel.com>

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2020-05-28 15:53:25 -06:00
..
accessibility
acpi ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive 2020-05-18 13:15:13 +02:00
amba amba: Initialize dma_parms for amba devices 2020-04-28 17:44:34 +02:00
android
ata ata: sata_inic162x fix a spelling issue 2020-04-23 09:59:30 -06:00
atm
auxdisplay
base driver core: Fix handling of SYNC_STATE_ONLY + STATELESS device links 2020-05-21 10:54:32 +02:00
bcma
block block-5.7-2020-05-22 2020-05-22 11:10:42 -07:00
bluetooth
bus bus: mhi: core: Fix some error return code 2020-05-15 16:32:20 +02:00
cdrom
char Convert i2c_new_device() to i2c_new_client_device() 2020-05-17 16:07:30 -07:00
clk clk: ti: clkctrl: convert subclocks to use proper names also 2020-05-12 20:18:19 -07:00
clocksource
connector
counter counter: 104-quad-8: Add lock guards - generic interface 2020-04-19 17:50:00 +01:00
cpufreq cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once 2020-04-27 10:30:11 +02:00
cpuidle
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-06 20:53:22 -07:00
dax device-dax: don't leak kernel memory to user space after unloading kmem 2020-05-23 10:26:31 -07:00
dca
devfreq
dio
dma dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()' 2020-05-19 22:26:01 +05:30
dma-buf dma-buf: fix documentation build warnings 2020-04-30 19:47:39 +05:30
edac
eisa
extcon
firewire
firmware EFI fixes for v5.7-rc6: 2020-05-22 20:06:25 +02:00
fpga
fsi
gnss
gpio gpio: tegra: mask GPIO IRQs during IRQ shutdown 2020-04-28 16:22:33 +02:00
gpu Merge tag 'amd-drm-fixes-5.7-2020-05-21' of git://people.freedesktop.org/~agd5f/linux into drm-fixes 2020-05-22 10:30:51 +10:00
greybus
hid HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock 2020-05-04 11:24:58 +02:00
hsi
hv hyperv-fixes for 5.7-rc4 2020-04-27 13:28:27 -07:00
hwmon hwmon: (da9052) Synchronize access with mfd 2020-05-13 10:06:09 -07:00
hwspinlock
hwtracing coresight: cti: remove incorrect NULL return check 2020-05-15 16:32:20 +02:00
i2c i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()' 2020-05-15 11:23:49 +02:00
i3c
ide
idle
iio iio: sca3000: Remove an erroneous 'get_device()' 2020-05-10 10:53:36 +01:00
infiniband RDMA/uverbs: Move IB_EVENT_DEVICE_FATAL to destroy_uobj 2020-05-12 17:02:25 -03:00
input
interconnect interconnect: qcom: Move the static keyword to the front of declaration 2020-04-29 13:11:44 +02:00
iommu iommu: Fix deferred domain attachment 2020-05-19 15:05:43 +02:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-15 16:32:20 +02:00
irqchip Merge branch 'irq/gic-v4.1-fixes-5.7' into irq/irqchip-5.7 2020-04-17 08:59:55 +01:00
isdn mISDN: make dmril and dmrim static 2020-04-16 13:52:31 -07:00
leds
lightnvm
macintosh
mailbox
mcb
md - Document DM integrity allow_discard feature that was added during 2020-04-30 16:45:08 -07:00
media
memory
memstick
message
mfd
misc misc: rtsx: Add short delay after exit from ASPM 2020-05-22 13:27:38 +02:00
mmc mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040 2020-05-11 10:51:30 +02:00
most most: core: use function subsys_initcall() 2020-04-28 15:04:09 +02:00
mtd This pull request contains the following bug fixes for MTD: 2020-05-20 13:23:55 -07:00
mux
net net: smsc911x: Fix runtime PM imbalance on error 2020-05-23 16:52:17 -07:00
nfc
ntb
nubus
nvdimm
nvme nvme-pci: dma read memory barrier for completions 2020-05-12 18:02:24 +02:00
nvmem
of of: unittest: kmemleak in duplicate property update 2020-04-17 08:31:34 -05:00
opp
oprofile
parisc
parport
pci PCI: Move Apex Edge TPU class quirk to fix BAR assignment 2020-04-14 19:16:51 -05:00
pcmcia
perf
phy phy: qualcomm: usb-hs-28nm: Prepare clocks in init 2020-04-30 12:10:49 +05:30
pinctrl pinctrl: qcom: Add affinity callbacks to msmgpio IRQ chip 2020-05-12 14:29:29 +02:00
platform chrome-platform fixes for v5.7-rc5 2020-05-06 16:40:14 -07:00
pnp
power
powercap
pps
ps3
ptp ptp: Remove unneeded conversion to bool 2020-04-21 15:45:32 -07:00
pwm
rapidio rapidio: fix an error in get_user_pages_fast() error handling 2020-05-23 10:26:31 -07:00
ras
regulator regulator: Revert "Use driver_deferred_probe_timeout for regulator_init_complete_work" 2020-04-29 19:57:45 +02:00
remoteproc remoteproc fixes for v5.7 2020-04-23 09:28:15 -07:00
reset
rpmsg rpmsg: pull in slab.h 2020-04-17 06:05:29 -04:00
rtc
s390 s390/ism: fix error return code in ism_probe() 2020-05-13 12:14:51 -07:00
sbus
scsi scsi: pm: Balance pm_only counter of request queue during system resume 2020-05-11 19:43:25 -04:00
sfi
sh
siox
slimbus
soc arm64: soc: ZynqMP SoC fixes for v5.7 2020-04-21 14:21:20 +02:00
soundwire
spi
spmi
ssb
staging iio-fixes-for-5.7b Second set of fixes for IIO in the 5.7 cycle. 2020-05-15 16:04:24 +02:00
target scsi: target: Put lun_ref at end of tmr processing 2020-05-14 20:27:05 -04:00
tc
tee
thermal
thunderbolt thunderbolt: Check return value of tb_sw_read() in usb4_switch_op() 2020-04-28 19:00:59 +02:00
tty tty: serial: add missing spin_lock_init for SiFive serial console 2020-05-15 14:55:10 +02:00
uio
usb USB: gadget: fix illegal array access in binding with UDC 2020-05-15 15:42:17 +02:00
vdpa vdpasim: remove unused variable 'ret' 2020-05-11 06:44:12 -04:00
vfio vfio iommu: Implementation of ioctl for dirty pages tracking 2020-05-28 15:53:25 -06:00
vhost virtio: build warning fixes 2020-05-21 12:59:29 -07:00
video
virt
virtio virtio-balloon: Avoid using the word 'report' when referring to free page hinting 2020-04-17 06:05:30 -04:00
visorbus
vlynq
vme
w1
watchdog
xen xen: branch for v5.7-rc2 2020-04-17 10:35:17 -07:00
zorro
Kconfig
Makefile