linux/drivers/gpu/drm/etnaviv
Lucas Stach b2295c247c drm/etnaviv: get rid of userptr worker
All code paths which populate userptr BOs are fine with the get_pages
function taking the mmap_sem lock. This allows to get rid of the pretty
involved architecture with a worker being scheduled if the mmap_sem
needs to be taken, but instead call GUP directly and allow it to take
the lock if necessary.

This simplifies the code a lot and removes the possibility of this
function returning -EAGAIN, which complicates object population
handling at the callers.

A notable change in behavior is that we don't allow a process to populate
objects with user pages from a foreign MM anymore. This would have been an
invalid use before, as it breaks the assumptions made in the etnaviv kernel
driver to enfore cache coherence. We now disallow this by rejecting the
request to populate those objects. Well behaving userspace is unaffected by
this change.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
2018-01-02 17:09:47 +01:00
..
cmdstream.xml.h drm/etnaviv: Allow DRAW_INSTANCED commands 2016-12-02 19:30:22 +01:00
common.xml.h drm/etnaviv: update common.xml.h 2017-05-05 17:14:41 +02:00
etnaviv_buffer.c drm/etnaviv: add 'sync point' support 2017-10-10 11:45:45 +02:00
etnaviv_cmd_parser.c drm/etnaviv: add sensitive state for occlusion query address 2017-12-01 17:37:30 +01:00
etnaviv_cmdbuf.c drm/etnaviv: extend etnaviv_gpu_cmdbuf_new(..) with nr_pmrs 2017-10-10 11:45:43 +02:00
etnaviv_cmdbuf.h drm/etnaviv: extend etnaviv_gpu_cmdbuf_new(..) with nr_pmrs 2017-10-10 11:45:43 +02:00
etnaviv_drv.c drm/etnaviv: short-circuit perfmon ioctls 2017-10-22 18:41:56 +02:00
etnaviv_drv.h drm/etnaviv: remove unused function etnaviv_gem_new 2017-10-10 11:46:57 +02:00
etnaviv_dump.c mm, vmalloc: use __GFP_HIGHMEM implicitly 2017-05-08 17:15:13 -07:00
etnaviv_dump.h
etnaviv_gem_prime.c drm/etnaviv: change return type of etnaviv_gem_obj_add to void 2018-01-02 17:07:41 +01:00
etnaviv_gem_submit.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2017-10-14 09:39:56 +10:00
etnaviv_gem.c drm/etnaviv: get rid of userptr worker 2018-01-02 17:09:47 +01:00
etnaviv_gem.h drm/etnaviv: get rid of userptr worker 2018-01-02 17:09:47 +01:00
etnaviv_gpu.c drm/etnaviv: fix GPU vs sync point race 2018-01-02 17:00:53 +01:00
etnaviv_gpu.h drm/etnaviv: use 'sync points' for performance monitor requests 2017-10-10 11:45:47 +02:00
etnaviv_iommu_v2.c drm/etnaviv: remove IOMMU dependency 2017-10-10 11:36:37 +02:00
etnaviv_iommu.c drm/etnaviv: remove IOMMU dependency 2017-10-10 11:36:37 +02:00
etnaviv_iommu.h drm/etnaviv: remove IOMMU dependency 2017-10-10 11:36:37 +02:00
etnaviv_mmu.c drm/etnaviv: Improve unlocking of a mutex in etnaviv_iommu_map_gem() 2017-12-01 17:37:31 +01:00
etnaviv_mmu.h drm/etnaviv: remove IOMMU dependency 2017-10-10 11:36:37 +02:00
etnaviv_perfmon.c drm/etnaviv: add MC perf domain 2017-10-10 11:45:52 +02:00
etnaviv_perfmon.h drm/etnaviv: add performance monitor request processing 2017-10-10 11:45:45 +02:00
Kconfig drm/etnaviv: make THERMAL selectable 2017-12-01 17:37:54 +01:00
Makefile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
state_3d.xml.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
state_hi.xml.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
state.xml.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00