linux/drivers/gpu/drm
Chris Wilson 4141168704 drm/i915: Break up error capture compression loops with cond_resched()
commit 7d55531476 upstream.

As the error capture will compress user buffers as directed to by the
user, it can take an arbitrary amount of time and space. Break up the
compression loops with a call to cond_resched(), that will allow other
processes to schedule (avoiding the soft lockups) and also serve as a
warning should we try to make this loop atomic in the future.

Testcase: igt/gem_exec_capture/many-*
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200916090059.3189-2-chris@chris-wilson.co.uk
(cherry picked from commit 293f43c80c)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-10 12:35:53 +01:00
..
amd drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally 2020-11-05 11:08:52 +01:00
arc drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
arm drm/arm: fix unintentional integer overflow on left shift 2020-08-19 08:14:54 +02:00
armada drm/armada: remove obsolete fb unreferencing kfifo and workqueue 2018-07-30 11:53:06 +01:00
ast drm/ast: Fixed reboot test may cause system hanged 2019-09-06 10:21:59 +02:00
atmel-hlcdc drm: atmel-hlcdc: enable clock before configuring timing engine 2020-02-11 04:34:16 -08:00
bochs drm/bochs: downgrade pci_request_region failure from error to warning 2020-04-13 10:44:59 +02:00
bridge drm/bridge/synopsys: dsi: add support for non-continuous HS clock 2020-11-05 11:08:41 +01:00
cirrus drm/cirrus: Use drm_framebuffer_put to avoid kernel oops in clean-up 2019-04-20 09:16:00 +02:00
etnaviv drm/etnaviv: Fix error path on failure to enable bus clk 2020-08-19 08:14:54 +02:00
exynos drm/exynos: fix ref count leak in mic_pre_enable 2020-07-22 09:32:01 +02:00
fsl-dcu drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
gma500 drm/gma500: fix error check 2020-10-29 09:55:07 +01:00
hisilicon drm/hisilicon: hibmc: Don't overwrite fb helper surface depth 2020-01-27 14:49:55 +01:00
i2c Merge branch 'drm-tda9950-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-fixes 2018-10-04 10:32:14 +10:00
i810 drm/i810: Prevent underflow in ioctl 2019-12-13 08:52:44 +01:00
i915 drm/i915: Break up error capture compression loops with cond_resched() 2020-11-10 12:35:53 +01:00
imx drm/imx: imx-ldb: Disable both channels for split mode in enc->disable() 2020-08-21 11:05:34 +02:00
lib
mediatek drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata() 2020-09-23 12:11:00 +02:00
meson drm: meson: venc: cvbs: fix CVBS mode matching 2019-12-21 10:57:39 +01:00
mga
mgag200 drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
msm drm/msm/a5xx: Always set an OPP supported hardware value 2020-10-01 13:14:38 +02:00
mxsfb
nouveau drm/nouveau/mem: guard against NULL pointer access in mem_del 2020-10-14 10:31:21 +02:00
omapdrm drm/omap: fix possible object reference leak 2020-10-01 13:14:33 +02:00
panel drm: panel: simple: Fix bpc for LG LB070WV8 panel 2020-08-19 08:14:57 +02:00
pl111 drm/pl111: Initialize clock spinlock early 2019-06-15 11:54:00 +02:00
qxl drm/qxl: Use correct notify port address when creating cursor ring 2020-06-25 15:33:06 +02:00
r128
radeon PCI: Use ioremap(), not phys_to_virt() for platform ROM 2020-10-01 13:14:40 +02:00
rcar-du drm: rcar-du: Fix build error 2020-06-30 23:17:17 -04:00
rockchip drm/rockchip: Suspend DP late 2019-08-29 08:28:40 +02:00
savage drm/savage: off by one in savage_bci_cmdbuf() 2018-07-04 14:27:01 +02:00
scheduler drm/scheduler: fix param documentation 2018-08-09 11:57:39 -05:00
selftests drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
shmobile drm/shmob: Fix return value check in shmob_drm_probe 2020-01-27 14:50:12 +01:00
sis
sti drm/sti: do not remove the drm_bridge that was never added 2020-01-27 14:49:53 +01:00
stm drm/stm: attach gem fence to atomic state 2019-10-07 18:56:31 +02:00
sun4i drm/sun4i: mixer: Extend regmap max_register 2020-10-07 08:00:06 +02:00
tdfx
tegra drm/tegra: hub: Do not enable orphaned window group 2020-07-16 08:17:21 +02:00
tilcdc drm/tilcdc: fix leak & null ref in panel_connector_get_modes 2020-08-19 08:14:50 +02:00
tinydrm tinydrm/mipi-dbi: Use dma-safe buffers for all SPI transfers 2019-05-31 06:46:32 -07:00
ttm drm/ttm: fix eviction valuable range check. 2020-11-05 11:08:54 +01:00
tve200 drm/tve200: Stabilize enable/disable 2020-09-17 13:45:29 +02:00
udl drm/udl: move to embedding drm device inside udl device. 2019-07-21 09:03:18 +02:00
v3d drm/v3d: Handle errors from IRQ setup. 2019-05-31 06:46:34 -07:00
vc4 drm/vc4/vc4_hdmi: fill ASoC card owner 2020-10-01 13:14:52 +02:00
vgem drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset() 2020-08-26 10:30:58 +02:00
via treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
virtio Fix use after free in get_capset_info callback. 2020-10-30 10:38:31 +01:00
vkms drm/vkms: Hold gem object while still in-use 2020-06-22 09:05:08 +02:00
vmwgfx drm/vmwgfx: Fix two list_for_each loop exit tests 2020-08-21 11:05:37 +02:00
xen drm/xen-front: Fix mmap attributes for display buffers 2020-01-27 14:50:19 +01:00
zte drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors 2019-09-16 08:22:23 +02:00
drm_atomic.c drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors 2019-09-16 08:22:23 +02:00
drm_auth.c drm: set is_master to 0 upon drm_new_set_master() failure 2018-12-08 12:59:07 +01:00
drm_blend.c
drm_bridge.c
drm_bufs.c drm: return -EFAULT if copy_to_user() fails 2019-07-14 08:11:14 +02:00
drm_cache.c
drm_client.c drm/cma-helper: Fix crash in fbdev error path 2018-10-02 13:03:34 +02:00
drm_color_mgmt.c
drm_connector.c drm/connector: Fix typo in drm_connector_list_iter_next() 2018-07-16 13:18:09 -04:00
drm_context.c drm: Fix error handling in drm_legacy_addctx 2020-01-27 14:50:10 +01:00
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h drm: drop _mode_ from remaining connector functions 2018-07-13 18:40:27 +02:00
drm_crtc.c drm/lease: Make sure implicit planes are leased 2019-06-09 09:17:23 +02:00
drm_debugfs_crc.c drm: remove the newline for CRC source name. 2020-02-24 08:34:45 +01:00
drm_debugfs.c drm/debugfs: fix plain echo to connector "force" attribute 2020-08-19 08:14:52 +02:00
drm_dma.c
drm_dp_aux_dev.c
drm_dp_cec.c drm_dp_cec.c: fix formatting typo: %pdH -> %phD 2018-07-28 15:50:40 -03:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp_helper: Add DP aux channel tracing 2018-07-16 11:47:53 -04:00
drm_dp_mst_topology.c drm/dp_mst: Increase ACT retry timeout to 3s 2020-06-25 15:33:07 +02:00
drm_drv.c drm/drv: Hold ref on parent device during drm_device lifetime 2019-05-31 06:46:34 -07:00
drm_dumb_buffers.c drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
drm_edid_load.c drm/edid: Fix a missing-check bug in drm_load_edid_firmware() 2019-07-31 07:26:58 +02:00
drm_edid.c drm/edid: Add Oculus Rift S to non-desktop list 2020-06-07 13:17:56 +02:00
drm_encoder_slave.c drm: encoder_slave: fix refcouting error for modules 2020-06-25 15:33:06 +02:00
drm_encoder.c
drm_fb_cma_helper.c drm/cma-helper: Fix crash in fbdev error path 2018-10-02 13:03:34 +02:00
drm_fb_helper.c drm/fb-helper: generic: Call drm_client_add() after setup is done 2020-01-27 14:50:36 +01:00
drm_file.c drm: Wake up next in drm_read() chain if we are forced to putback the event 2019-05-31 06:46:34 -07:00
drm_flip_work.c
drm_fourcc.c drm/fourcc: Add is_yuv field to drm_format_info to denote if the format is yuv 2018-07-18 16:56:45 +01:00
drm_framebuffer.c drm: silence variable 'conn' set but not used 2019-08-16 10:12:46 +02:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Always do implicit sync 2018-06-20 14:43:13 +02:00
drm_gem.c drm: hold gem reference until object is no longer accessed 2020-08-05 10:06:01 +02:00
drm_global.c drm: add SPDX identifier and clarify license 2018-06-29 15:28:47 -05:00
drm_hashtab.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
drm_info.c
drm_internal.h drm/lease: Send a distinct uevent 2018-12-13 09:16:21 +01:00
drm_ioc32.c drm: add __user attribute to ptr_to_compat() 2019-09-16 08:22:08 +02:00
drm_ioctl.c drm/atomic: Take the atomic toys away from X 2020-05-10 10:30:12 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm/lease: fix WARNING in idr_destroy 2020-03-25 08:06:12 +01:00
drm_legacy.h
drm_lock.c
drm_memory.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
drm_mipi_dsi.c drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline 2020-08-19 08:14:55 +02:00
drm_mm.c drm/mm: Add a search-by-address variant to only inspect a single hole 2018-05-24 15:04:30 +01:00
drm_mode_config.c drm: writeback: Add client capability for exposing writeback connectors 2018-06-20 15:30:20 +01:00
drm_mode_object.c drm: Reorder set_property_atomic to avoid returning with an active ww_ctx 2019-03-27 14:14:42 +09:00
drm_modes.c drm/modes: Prevent division by zero htotal 2019-02-15 08:10:12 +01:00
drm_modeset_helper.c
drm_modeset_lock.c drm: Change deadlock-avoidance algorithm for the modeset locks. 2018-07-03 09:46:05 +02:00
drm_of.c drm/doc: Include drm_of.c helpers 2018-07-13 18:40:28 +02:00
drm_panel_orientation_quirks.c drm: Added orientation quirk for ASUS tablet model T103HAF 2020-08-21 11:05:39 +02:00
drm_panel.c Revert "drm/panel: Add device_link from panel device to DRM device" 2018-09-27 11:00:42 -04:00
drm_pci.c drm: Remove PageReserved manipulation from drm_pci_alloc 2020-04-17 10:48:55 +02:00
drm_plane_helper.c drm: add missing ctx argument to plane transitional helpers 2018-07-03 09:30:19 +02:00
drm_plane.c drm/lease: Make sure implicit planes are leased 2019-06-09 09:17:23 +02:00
drm_prime.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
drm_print.c drm: Add puts callback for the coredump printer 2018-07-30 08:49:41 -04:00
drm_probe_helper.c drm: Flush output polling on shutdown 2019-10-01 08:26:11 +02:00
drm_property.c drm: limit to INT_MAX in create_blob ioctl 2020-01-09 10:18:59 +01:00
drm_rect.c drm/rect: Avoid division by zero 2020-02-11 04:34:07 -08:00
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
drm_syncobj.c drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set 2018-09-26 10:39:14 -04:00
drm_sysfs.c drm/lease: Send a distinct uevent 2018-12-13 09:16:21 +01:00
drm_trace_points.c
drm_trace.h
drm_vblank.c drm/drm_vblank: Change EINVAL by the correct errno 2019-12-31 16:35:01 +01:00
drm_vm.c gpu: drm: drm_vm: Adding new typedef vm_fault_t 2018-05-29 08:58:46 +02:00
drm_vma_manager.c drm: add SPDX idenitifier and clarify license 2018-06-29 15:28:47 -05:00
drm_writeback.c drm: writeback: Fix doc that says connector should be disconnected 2018-07-16 16:35:27 +01:00
Kconfig drm/fb_helper: Allow leaking fbdev smem_start 2019-01-16 22:04:35 +01:00
Makefile drm: add support for DisplayPort CEC-Tunneling-over-AUX 2018-07-13 17:58:19 +03:00