OpenCloudOS-Kernel/drivers/gpu/drm/nouveau
Daniel Vetter 03e0d26fcf drm/nouveau: slowpath for pushbuf ioctl
We can't copy_*_user while holding reservations, that will (soon even
for nouveau) lead to deadlocks. And it breaks the cross-driver
contract around dma_resv.

Fix this by adding a slowpath for when we need relocations, and by
pushing the writeback of the new presumed offsets to the very end.

Aside from "it compiles" entirely untested unfortunately.

Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191104173801.2972-2-daniel.vetter@ffwll.ch
2019-11-06 11:23:27 +01:00
..
dispnv04 Merge drm/drm-next into drm-misc-next 2019-10-03 16:38:50 +02:00
dispnv50 Merge drm/drm-next into drm-misc-next 2019-10-03 16:38:50 +02:00
include drm/nouveau/gpio: check function 76 in the power check as well 2019-08-23 12:55:34 +10:00
nvif drm/nouveau/mmu: use struct_size() helper 2019-08-23 12:55:31 +10:00
nvkm drm main pull for 5.4-rc1 2019-09-19 16:24:24 -07:00
Kbuild drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:51 +10:00
Kconfig mm: remove CONFIG_MIGRATE_VMA_HELPER 2019-08-20 09:35:03 -03:00
nouveau_abi16.c drm/nouveau: remove open-coded drm_invalid_op() 2019-08-07 11:52:08 -04:00
nouveau_abi16.h drm/nouveau: remove open-coded drm_invalid_op() 2019-08-07 11:52:08 -04:00
nouveau_acpi.c drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_acpi.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_backlight.c drm/nouveau: register backlight on pascal and newer 2019-01-11 16:25:54 +10:00
nouveau_bios.c drm/nouveau/bios: downgrade absence of tmds table to info from an error 2019-08-23 12:55:31 +10:00
nouveau_bios.h
nouveau_bo.c drm/nouveau: Fix ordering between TTM and GEM release 2019-09-17 14:50:16 +10:00
nouveau_bo.h drm/nouveau: Fix fallout from reservation object rework 2019-09-17 14:50:15 +10:00
nouveau_chan.c drm/nouveau/svm: initial support for shared virtual memory 2019-02-20 09:00:02 +10:00
nouveau_chan.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_connector.c Merge drm/drm-next into drm-misc-next 2019-10-03 16:38:50 +02:00
nouveau_connector.h drm/nouveau/drm/nouveau: Don't forget to label dp_aux devices 2018-12-11 15:37:09 +10:00
nouveau_crtc.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_debugfs.c drm/nouveau/debugfs: Fix check of pm_runtime_get_sync failure 2019-03-22 09:57:58 +10:00
nouveau_debugfs.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_display.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_display.h drm/nouveau: drop drmP.h from nouveau_drv.h 2019-08-23 12:55:30 +10:00
nouveau_dma.c drm/nouveau: drop use of DRM_UDELAY 2019-08-23 12:55:30 +10:00
nouveau_dma.h drm/nouveau/drm/nv50-: remove allocation of sw class 2018-05-18 15:01:26 +10:00
nouveau_dmem.c mm: remove the unused MIGRATE_PFN_DEVICE flag 2019-08-20 09:35:03 -03:00
nouveau_dmem.h nouveau: remove a few function stubs 2019-08-20 09:35:03 -03:00
nouveau_dp.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_drm.c hmm related patches for 5.4 2019-09-21 10:07:42 -07:00
nouveau_drv.h drm/nouveau/dispnv50: Fix runtime PM ref tracking for non-blocking modesets 2019-08-23 12:55:34 +10:00
nouveau_encoder.h drm/nouveau/kms/nv50: handle SetControlOutputResource from head 2018-05-18 15:01:28 +10:00
nouveau_fbcon.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_fbcon.h drm/nouveau: Use drm_fb_helper_fill_info 2019-03-27 10:03:16 +01:00
nouveau_fence.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_fence.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_gem.c drm/nouveau: slowpath for pushbuf ioctl 2019-11-06 11:23:27 +01:00
nouveau_gem.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_hwmon.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_hwmon.h
nouveau_ioc32.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_ioctl.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_led.c
nouveau_led.h
nouveau_mem.c
nouveau_mem.h
nouveau_nvif.c
nouveau_platform.c drm/nouveau: Replace drm_dev_unref with drm_dev_put 2018-07-16 18:06:30 +10:00
nouveau_platform.h
nouveau_prime.c drm/nouveau/prime: Extend DMA reservation object lock 2019-09-17 14:50:15 +10:00
nouveau_reg.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_sgdma.c drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_svm.c mm/hmm: remove the page_shift member from struct hmm_range 2019-08-07 14:58:06 -03:00
nouveau_svm.h drm/nouveau/svm: new ioctl to migrate process memory to GPU memory 2019-02-20 09:00:03 +10:00
nouveau_ttm.c drm/nouveau: switch to gem vma offset manager 2019-09-11 08:03:23 +02:00
nouveau_ttm.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_usif.c
nouveau_usif.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_vga.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_vga.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_vmm.c drm/nouveau/svm: initial support for shared virtual memory 2019-02-20 09:00:02 +10:00
nouveau_vmm.h drm/nouveau/svm: initial support for shared virtual memory 2019-02-20 09:00:02 +10:00
nv04_fbcon.c
nv04_fence.c drm/nouveau/fifo: support channel count query 2018-05-18 15:01:21 +10:00
nv10_fence.c drm/nouveau/fifo: support channel count query 2018-05-18 15:01:21 +10:00
nv10_fence.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nv17_fence.c drm/nouveau/fifo: support channel count query 2018-05-18 15:01:21 +10:00
nv50_display.h drm/nouveau/kms/nv50-: split each resource type into their own source files 2018-05-18 15:01:28 +10:00
nv50_fbcon.c
nv50_fence.c drm/nouveau/fifo: support channel count query 2018-05-18 15:01:21 +10:00
nv84_fence.c drm/nouveau: prepare for enabling svm with existing userspace interfaces 2019-02-20 09:00:01 +10:00
nvc0_fbcon.c
nvc0_fence.c