kernel_optimize_test/drivers/vfio
Alex Williamson 492855939b vfio/type1: Limit DMA mappings per container
Memory backed DMA mappings are accounted against a user's locked
memory limit, including multiple mappings of the same memory.  This
accounting bounds the number of such mappings that a user can create.
However, DMA mappings that are not backed by memory, such as DMA
mappings of device MMIO via mmaps, do not make use of page pinning
and therefore do not count against the user's locked memory limit.
These mappings still consume memory, but the memory is not well
associated to the process for the purpose of oom killing a task.

To add bounding on this use case, we introduce a limit to the total
number of concurrent DMA mappings that a user is allowed to create.
This limit is exposed as a tunable module option where the default
value of 64K is expected to be well in excess of any reasonable use
case (a large virtual machine configuration would typically only make
use of tens of concurrent mappings).

This fixes CVE-2019-3882.

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2019-04-03 12:43:05 -06:00
..
mdev vfio-mdev: Switch to use new generic UUID API 2019-02-05 11:51:56 -07:00
pci vfio/pci: use correct format characters 2019-04-03 12:36:20 -06:00
platform vfio: platform: reset: fix up include directives to remove ccflags-y 2019-02-05 13:29:30 -07:00
Kconfig drivers/vfio: Allow type-1 IOMMU instantiation with all ARM/ARM64 IOMMUs 2018-09-25 13:01:28 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vfio_iommu_spapr_tce.c vfio/spapr_tce: Make symbol 'tce_iommu_driver_ops' static 2019-04-03 12:42:02 -06:00
vfio_iommu_type1.c vfio/type1: Limit DMA mappings per container 2019-04-03 12:43:05 -06:00
vfio_spapr_eeh.c powerpc/eeh: Improve recovery of passed-through devices 2019-02-05 11:55:44 +11:00
vfio.c vfio: expand minor range when registering chrdev region 2019-02-12 13:20:56 -07:00
virqfd.c fs: add new vfs_poll and file_can_poll helpers 2018-05-26 09:16:44 +02:00