linux/drivers/gpu/drm
Jason Ekstrand 3761baae90 Revert "drm/i915: Propagate errors on awaiting already signaled fences"
This reverts commit 9e31c1fe45.  Ever
since that commit, we've been having issues where a hang in one client
can propagate to another.  In particular, a hang in an app can propagate
to the X server which causes the whole desktop to lock up.

Error propagation along fences sound like a good idea, but as your bug
shows, surprising consequences, since propagating errors across security
boundaries is not a good thing.

What we do have is track the hangs on the ctx, and report information to
userspace using RESET_STATS. That's how arb_robustness works. Also, if my
understanding is still correct, the EIO from execbuf is when your context
is banned (because not recoverable or too many hangs). And in all these
cases it's up to userspace to figure out what is all impacted and should
be reported to the application, that's not on the kernel to guess and
automatically propagate.

What's more, we're also building more features on top of ctx error
reporting with RESET_STATS ioctl: Encrypted buffers use the same, and the
userspace fence wait also relies on that mechanism. So it is the path
going forward for reporting gpu hangs and resets to userspace.

So all together that's why I think we should just bury this idea again as
not quite the direction we want to go to, hence why I think the revert is
the right option here.

For backporters: Please note that you _must_ have a backport of
https://lore.kernel.org/dri-devel/20210602164149.391653-2-jason@jlekstrand.net/
for otherwise backporting just this patch opens up a security bug.

v2: Augment commit message. Also restore Jason's sob that I
accidentally lost.

v3: Add a note for backporters

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reported-by: Marcin Slusarz <marcin.slusarz@intel.com>
Cc: <stable@vger.kernel.org> # v5.6+
Cc: Jason Ekstrand <jason.ekstrand@intel.com>
Cc: Marcin Slusarz <marcin.slusarz@intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3080
Fixes: 9e31c1fe45 ("drm/i915: Propagate errors on awaiting already signaled fences")
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210714193419.1459723-3-jason@jlekstrand.net
(cherry picked from commit 93a2711cdd)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-07-19 09:55:24 -04:00
..
amd drm/amdgpu: add another Renoir DID 2021-07-14 15:08:55 -04:00
arm drm/arm/malidp: Always list modifiers 2021-05-06 11:43:46 +02:00
armada drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
aspeed drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
ast drm/ast: Remove reference to struct drm_device.pdev 2021-04-29 21:19:10 +02:00
atmel-hlcdc drm/atmel-hlcdc: Allow async page flips 2021-06-19 23:06:56 +02:00
bochs drm/bochs: Add screen blanking support 2021-04-27 14:14:12 +02:00
bridge drm/bridge: ti-sn65dsi83: Fix syntax formatting issues 2021-06-08 12:29:31 +02:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2021-06-11 13:00:58 +10:00
exynos drm/exynos: use pm_runtime_resume_and_get() 2021-06-11 10:56:38 +09:00
fsl-dcu drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
gma500 drm/gma500: Add the missed drm_gem_object_put() in psb_user_framebuffer_create() 2021-06-29 18:09:31 +02:00
gud drm/gud: cleanup coding style a bit 2021-04-27 13:13:19 +02:00
hisilicon drm/hisilicon/kirin: Use the correct HiSilicon copyright 2021-05-26 21:19:28 +02:00
hyperv drm/hyperv: Fix unused const variable 'hyperv_modifiers' 2021-06-15 10:43:35 +02:00
i2c
i810 drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
i915 Revert "drm/i915: Propagate errors on awaiting already signaled fences" 2021-07-19 09:55:24 -04:00
imx drm/imx: fixes, dma-fence annotation, and color encoding/range plane properties 2021-05-20 10:54:31 +10:00
ingenic drm/ingenic: Add option to alloc cached GEM buffers 2021-05-25 11:42:53 +01:00
kmb drm pull for 5.14-rc1 2021-07-01 12:53:43 -07:00
lib
lima treewide: Add missing semicolons to __assign_str uses 2021-06-30 09:19:14 -04:00
mcde Linux 5.13-rc7 2021-06-23 10:07:48 +10:00
mediatek Mediatek DRM Next for Linux 5.14 2021-06-18 10:21:53 +10:00
meson Linux 5.13-rc7 2021-06-23 10:07:48 +10:00
mga drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
mgag200 drm/format-helper: Pass destination pitch to drm_fb_memcpy_dstclip() 2021-05-01 12:45:03 +02:00
msm drm/msm: Fix fall-through warning in msm_gem_new_impl() 2021-07-12 21:32:25 -05:00
mxsfb drm/mxsfb: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:42:57 +02:00
nouveau Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
omapdrm Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
panel Short summary of fixes pull: 2021-07-13 15:15:17 +02:00
panfrost dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
pl111 drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends 2021-06-04 15:02:26 +02:00
qxl drm/qxl: add NULL check for bo->resource 2021-07-09 12:43:13 +02:00
r128 drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
radeon drm fixes for 5.14-rc1 2021-07-08 12:28:15 -07:00
rcar-du Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
rockchip drm/rockchip: vop: add PX30 version info 2021-05-28 20:30:35 +02:00
savage drm/savage: Remove references to struct drm_device.pdev 2021-05-03 19:48:30 +02:00
scheduler drm/sched: Avoid data corruptions 2021-05-19 23:50:28 -04:00
selftests drm: allow drm_atomic_print_state() to accept any drm_printer 2021-06-23 07:32:13 -07:00
shmobile
sis drm/sis: Remove references to struct drm_device.pdev 2021-05-03 19:48:33 +02:00
sti drm/sti/sti_hqvdp: Fix incorrectly named function 'sti_hqvdp_vtg_cb()' 2021-06-03 13:29:32 +02:00
stm drm/stm: Remove usage of drm_display_mode_to_videomode() 2021-06-08 18:49:36 +02:00
sun4i Linux 5.13-rc7 2021-06-23 10:07:48 +10:00
tdfx
tegra drm/tegra: Changes for v5.14-rc1 2021-06-23 14:24:37 +10:00
tidss drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
tilcdc drm/tilcdc: fix pixel clock setting warning message 2021-03-24 12:05:28 +02:00
tiny drm/simpledrm: Use %p4cc to print 4CC format 2021-05-27 08:34:30 +02:00
ttm drm/ttm: add a check against null pointer dereference 2021-07-14 17:16:16 +02:00
tve200 drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
udl drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
v3d Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
vboxvideo drm/vboxvideo/modesetting: Provide function names for prototype headers 2021-06-03 13:33:18 +02:00
vc4 drm pull for 5.14-rc1 2021-07-01 12:53:43 -07:00
vgem dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
via drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
virtio dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
vkms drm/vkms: add overlay support 2021-04-29 18:53:05 -03:00
vmwgfx drm/vmwgfx: Fix a bad merge in otable batch takedown 2021-07-09 16:18:44 -04:00
xen Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
xlnx drm/dp: Pass drm_dp_aux to drm_dp*_link_train_channel_eq_delay() 2021-04-27 18:43:42 -04:00
zte drm/zte: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:43:04 +02:00
Kconfig drm/hyperv: Add DRM driver for hyperv synthetic video device 2021-06-07 08:04:10 -07:00
Makefile drm/hyperv: Add DRM driver for hyperv synthetic video device 2021-06-07 08:04:10 -07:00
drm_agpsupport.c drm: Include <asm/agp.h> iff CONFIG_AGP is set 2021-05-11 14:13:33 +02:00
drm_aperture.c drm/aperture: Fix missing unlock on error in devm_aperture_acquire() 2021-05-13 15:06:32 +02:00
drm_atomic.c Merge tag 'drm-msm-next-2021-06-23b' of https://gitlab.freedesktop.org/drm/msm into drm-next 2021-06-24 07:21:16 +10:00
drm_atomic_helper.c drm: drm_atomic_helper.c: Correct comments format 2021-04-12 17:57:14 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c Merge tag 'drm-msm-next-2021-06-23b' of https://gitlab.freedesktop.org/drm/msm into drm-next 2021-06-24 07:21:16 +10:00
drm_auth.c Linux 5.13-rc7 2021-06-23 10:07:48 +10:00
drm_blend.c drm: drm_blend.c: Use tabs for code indents 2021-04-22 10:46:35 +02:00
drm_bridge.c drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() 2021-04-20 08:56:44 -07:00
drm_bridge_connector.c
drm_bufs.c drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
drm_cache.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_client.c
drm_client_modeset.c drm: replace drm_modeset_lock_all() in drm_client_modeset_dpms_legacy() 2021-02-09 17:16:57 +01:00
drm_color_mgmt.c
drm_connector.c drm/connector: Add a helper to attach the colorspace property 2021-05-07 17:14:59 +02:00
drm_context.c drm: correct function name drm_legacy_ctxbitmap_flush() 2021-05-16 22:01:14 +02:00
drm_crtc.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_crtc_helper.c
drm_crtc_helper_internal.h drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_crtc_internal.h drm: allow drm_atomic_print_state() to accept any drm_printer 2021-06-23 07:32:13 -07:00
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c
drm_displayid.c drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dma.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_dp_aux_dev.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp_dual_mode: Convert drm_dp_dual_mode_helper.c to using drm_err/drm_dbg_kms() 2021-04-27 18:43:45 -04:00
drm_dp_helper.c drm/dp: Fix bogus DPCD version check in drm_dp_read_downstream_info() 2021-05-10 16:26:07 -04:00
drm_dp_mst_topology.c drm/dp_mst: Add missing drm parameters to recently added call to drm_dbg_kms() 2021-06-16 15:53:15 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: use the new displayid iterator for tile info 2021-03-31 15:42:02 +03:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Add and export function drm_fb_cma_sync_non_coherent 2021-05-25 11:42:09 +01:00
drm_fb_helper.c drm/fb-helper: improve DRM fbdev emulation device names 2021-05-26 21:22:38 +02:00
drm_file.c drm/drm_file.c: Define drm_send_event_helper() as 'static' 2021-04-27 14:23:12 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add blitter functions 2021-05-01 12:45:03 +02:00
drm_fourcc.c Merge tag 'amd-drm-next-5.14-2021-06-02' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2021-06-04 06:13:57 +10:00
drm_framebuffer.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_gem.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
drm_gem_atomic_helper.c dma-buf: rename dma_resv_get_excl_rcu to _unlocked 2021-06-06 11:19:30 +02:00
drm_gem_cma_helper.c drm: Fix misleading documentation of drm_gem_cma_create() 2021-06-01 17:27:20 +01:00
drm_gem_framebuffer_helper.c drm: log errors in drm_gem_fb_init_with_funcs 2021-05-18 19:48:18 +02:00
drm_gem_shmem_helper.c drm/shmem-helpers: vunmap: Don't put pages for dma-buf 2021-03-11 11:11:33 +01:00
drm_gem_ttm_helper.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
drm_gem_vram_helper.c drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_ioc32.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_ioctl.c Linux 5.13-rc7 2021-06-23 10:07:48 +10:00
drm_irq.c drm: Upcast struct drm_device.dev to struct pci_device; replace pdev 2021-01-19 09:06:38 +01:00
drm_kms_helper_common.c drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_lease.c drm: Don't include drm_legacy.h in drm_lease.c 2021-05-17 21:19:22 +02:00
drm_legacy.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_legacy_misc.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_lock.c
drm_managed.c
drm_memory.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_mipi_dbi.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm-misc-next for v5.12: 2021-01-07 13:40:20 +01:00
drm_mode_object.c
drm_modes.c Merge drm/drm-next into drm-misc-next 2021-05-11 15:59:18 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c drm: Added orientation quirk for OneGX1 Pro 2021-01-20 22:33:01 +01:00
drm_pci.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_plane.c drm/modifiers: Enforce consistency between the cap an IN_FORMATS 2021-05-12 11:31:29 +02:00
drm_plane_helper.c
drm_prime.c drm: Set vm_ops to GEM object's values during mmap 2021-01-18 10:37:26 +01:00
drm_print.c
drm_probe_helper.c drm/probe-helper: Check epoch counter in output_poll_execute() 2021-03-16 12:45:52 +01:00
drm_property.c drm: Few typo fixes 2021-03-18 14:22:50 +01:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic: Pass the full state to planes atomic disable and update 2021-02-25 08:05:28 +01:00
drm_syncobj.c drm/syncobj: use newly allocated stub fences 2021-04-08 12:21:13 +02:00
drm_sysfs.c drm/sysfs: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-03-23 07:41:39 -04:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore() 2021-04-01 20:29:17 +03:00
drm_vblank_work.c
drm_vm.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_vma_manager.c
drm_writeback.c