linux/drivers/xen
Juergen Gross 3b06ac6707 xen/gntdev: replace global limit of mapped pages by limit per call
Today there is a global limit of pages mapped via /dev/xen/gntdev set
to 1 million pages per default. There is no reason why that limit is
existing, as total number of grant mappings is limited by the
hypervisor anyway and preferring kernel mappings over userspace ones
doesn't make sense. It should be noted that the gntdev device is
usable by root only.

Additionally checking of that limit is fragile, as the number of pages
to map via one call is specified in a 32-bit unsigned variable which
isn't tested to stay within reasonable limits (the only test is the
value to be <= zero, which basically excludes only calls without any
mapping requested). So trying to map e.g. 0xffff0000 pages while
already nearly 1000000 pages are mapped will effectively lower the
global number of mapped pages such that a parallel call mapping a
reasonable amount of pages can succeed in spite of the global limit
being violated.

So drop the global limit and introduce per call limit instead. This
per call limit (default: 65536 grant mappings) protects against
allocating insane large arrays in the kernel for doing a hypercall
which will fail anyway in case a user is e.g. trying to map billions
of pages.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
2019-12-02 07:39:18 +01:00
..
events xen/events: remove event handling recursion detection 2019-12-02 07:04:30 +01:00
xen-pciback xen/pciback: remove set but not used variable 'old_state' 2019-07-26 10:29:05 +02:00
xenbus xen/xenbus: fix self-deadlock after killing user process 2019-10-02 16:40:11 -04:00
xenfs Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
acpi.c
arm-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
balloon.c xen/balloon: Clear PG_offline in balloon_retrieve() 2019-10-01 15:52:53 -04:00
biomerge.c block: pass page to xen_biovec_phys_mergeable 2019-04-01 12:11:13 -06:00
cpu_hotplug.c xen, cpu_hotplug: Prevent an out of bounds access 2019-03-08 17:58:14 +01:00
dbgp.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
efi.c xen/efi: have a common runtime setup function 2019-10-02 10:31:07 -04:00
evtchn.c xen/events: fix binding user event channels to cpus 2019-07-17 08:09:57 +02:00
features.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
gntalloc.c
gntdev-common.h xen/gntdev: replace global limit of mapped pages by limit per call 2019-12-02 07:39:18 +01:00
gntdev-dmabuf.c xen/gntdev: replace global limit of mapped pages by limit per call 2019-12-02 07:39:18 +01:00
gntdev-dmabuf.h xen/gntdev: Do not destroy context while dma-bufs are in use 2019-02-18 06:50:03 +01:00
gntdev.c xen/gntdev: replace global limit of mapped pages by limit per call 2019-12-02 07:39:18 +01:00
grant-table.c xen/grant-table: remove unnecessary printing 2019-10-10 10:41:30 -04:00
Kconfig xen: Fix Kconfig indentation 2019-11-24 11:55:31 +01:00
Makefile xen: remove tmem driver 2019-07-17 08:09:58 +02:00
manage.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
mcelog.c xen/mcelog: add PPIN to record when available 2019-11-14 10:01:57 +01:00
mem-reservation.c xen/balloon: add runtime control for scrubbing ballooned out pages 2018-09-14 08:51:10 -04:00
pci.c xen/pci: reserve MCFG areas earlier 2019-09-12 15:02:55 -04:00
pcpu.c
platform-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320 2019-06-05 17:37:05 +02:00
preempt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 135 2019-05-30 11:25:15 -07:00
privcmd-buf.c xen/privcmd-buf.c: convert to use vm_map_pages_zero() 2019-05-14 09:47:50 -07:00
privcmd.c xen: avoid link error on ARM 2019-07-31 08:14:12 +02:00
privcmd.h xen: add new hypercall buffer mapping device 2018-06-22 08:26:42 +02:00
pvcalls-back.c net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head 2019-10-09 21:34:31 -07:00
pvcalls-front.c xen: fixes for 5.2-rc3 2019-05-31 10:53:34 -07:00
pvcalls-front.h
swiotlb-xen.c dma-direct: exclude dma_direct_map_resource from the min_low_pfn check 2019-11-20 20:31:41 +01:00
sys-hypervisor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
time.c x86/paravirt: Use a single ops structure 2018-09-03 16:50:35 +02:00
xen-acpi-cpuhotplug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xen-acpi-memhotplug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xen-acpi-pad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
xen-acpi-processor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
xen-balloon.c xen: remove tmem driver 2019-07-17 08:09:58 +02:00
xen-front-pgdir-shbuf.c xen: Introduce shared buffer helpers for page directory... 2018-12-18 12:15:55 -05:00
xen-scsiback.c xen: fixes and features for 5.1-rc1 2019-03-11 17:08:14 -07:00
xen-stub.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xlate_mmu.c xen: avoid link error on ARM 2019-07-31 08:14:12 +02:00